我有一个grep命令,可以找到需要替换值的文件。然后我有一个perl one liner,需要在每个文件上执行以替换该文件中的变量。
如何将grep命令的结果传递给perl one liner?
grep -Irc "/env/file1/" /env/scripts/ | cut -d':' -f1 | sort | uniq
/env/scripts/config/MainDocument.pl
/env/scripts/config/MainDocument.pl2
/env/scripts/config/MainDocument.pl2.bak
perl -p -i.bak -e 's{/env/file1/}{/env/file2/}g' /env/scripts/config/MainDocument.pl
感谢您的帮助。
答案 0 :(得分:1)
使用$(...)
bash语法。
perl -p -i.bak -e 's{/env/file1/}{/env/file2/}g' $(grep -Irc "/env/file1/" /env/scripts/ | cut -d':' -f1 | sort | uniq)
答案 1 :(得分:0)
我会忘记perl one liner使用xargs和sed。
grep -Irc "/env/file1/" /env/scripts/ | cut -d':' -f1 | sort | uniq | xargs sed -ibak ':/env/file1/:/env/file2/:'