如何将grep的结果传送到perl one liner?

时间:2017-01-19 17:17:43

标签: bash perl grep pipe

我有一个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

感谢您的帮助。

2 个答案:

答案 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/:'