Using Bash/Perl to modify files based on each file's nameに答えようとしてfind
いsed
ます。
ファイルの名前を追加して、行を変更したいファイルの特定の構造があるとしましょう。
通常の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 ) が、この場合、理解できるように十分に一般化できませんでした。
私はあなたたちがこれに対する素晴らしい解決策を持ってくると確信しています. ありがとう!