2

Using Bash/Perl to modify files based on each file's nameに答えようとしてfindsedます。

ファイルの名前を追加して、行を変更したいファイルの特定の構造があるとしましょう。

通常のforループであれば、次のようにします。

for file in dir/*
do
   sed -i "s/text/text plus $file/g" $file
done

findしかし、すべてのサブディレクトリからファイルを変更するために使用したいとしましょう。この場合、私は...

find . -type f -exec sed -i "s/text/text plus {}/g" {} \;
                                              ^
                                   it does not like this part

しかし、これら{}sed受け入れられず、エラーが発生します

sed: -e 式 #1、文字 20: `s' への不明なオプション

同様の質問をいくつか見つけました ( 1 ) が、この場合、理解できるように十分に一般化できませんでした。

私はあなたたちがこれに対する素晴らしい解決策を持ってくると確信しています. ありがとう!

4

2 に答える 2