いくつかのサブディレクトリがあるディレクトリがあります。たとえば、 「」*A*.txt
を*B*.txt
含む2種類のファイルがあることを知っています。古い文字列「をそのディレクトリに入れます。そのディレクトリを」に置き換えたいです。新しい文字列1つのコマンドでこれを実行できますか?つまり、"*B*.txt"
このコマンドのどこかに次を追加できます。
find . -type f -name "*A*.txt" -exec sed -i 's/oldString/newString/g' {} \;
ベストアンサー1
あなたは試すことができます:
find . -type f \( -name "*A*.txt" -o -name "*B*.txt" \) \
-exec sed -i 's/oldString/newString/g' {} +
(ここでは、ファイルごとに1つの呼び出しを実行しない+
ように置き換えも使用されます。追加の利点は次のとおりです。;
sed
どの呼び出しがsed
ゼロ以外の終了状態で返されます。