同じファイルを含む一連のディレクトリを取得し、ファイルのテキスト文字列をディレクトリ名と一致する変数に置き換えるループを含むスクリプトを作成しようとしています。
変数は$ i = 3,4,5で、ファイル名はFILEです
。これまでに作成した内容は次のとおりです。
for i in ./*z
do
cd $i
if
grep -q 'DZ' FILE
then
sed -i 's/DZ/$iZ/g' FILE
fi
cd ..
done
変数を変更せずにDZの代わりに$ iZを取得します。
この問題をどのように解決できますか?
ベストアンサー1
GNUシステムでファイル内DZ
のすべての項目をに置き換えたいとします./fooz/FILE
。fooZ
grep -lZe DZ -- *z/FILE |
xargs -r0 perl -pi -e '
my $repl = "${1}Z" if $ARGV =~ m{(.*?)z/};
s/DZ/$repl/g' --