Unixで拡張子が.tsまたは.tsxのファイルをすべて検索しますか?

Unixで拡張子が.tsまたは.tsxのファイルをすべて検索しますか?

.tsいくつかのファイルを含むReactアプリケーションがあります.tsx

現在の.tsファイルと.tsxファイルの内容を更新するには、2つの個別のコマンドを実行する必要があります。

internal-web main % cd src
src main % find . -name '*.tsx' -print0 | xargs -0 sed -i "" "s/SomeThing/SOME_THING/g"
src main % find . -name '*.ts' -print0 | xargs -0 sed -i "" "s/SomeThing/SOME_THING/g"

.tsファイルと.tsxファイルを同時に更新できるように、このコマンドを1つのコマンドにまとめる方法はありますか?

ベストアンサー1

あなたはできます:

find . \( -name '*.tsx' -o -name '*.ts' \) -print0 | 
    xargs -0 sed -i "" "s/SomeThing/SOME_THING/g"

sedまたは、はるかに簡単で移植性に優れています(ファイルが見つからないときに発生するエラーを防ぐ)。

find . \( -name '*.tsx' -o -name '*.ts' \) -exec sed -i "" "s/SomeThing/SOME_THING/g" {} +

とにかく、これは-i標準オプションではないことに注意してくださいsedsed -i ""FreeBSD実装を使用することをお勧めしますsed(macOSでも利用可能)。他のほとんどのsed実装はaをサポートしないか、aを省略する-i必要があります""

おすすめ記事