2017-01-19 7 views
0

У меня есть команда grep, которая находит файлы, требующие замены значения. Тогда у меня есть perl один вкладыш, который необходимо выполнить для каждого файла, чтобы заменить переменные, найденные в этом файле.Как я могу передать результаты grep в perl один вкладыш?

Как я могу передать результаты моей команды grep в perl один лайнер?

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

Можете ли вы предоставить обратную связь по предоставленным ответам @millsofmn? – Inian

ответ

1

С синтаксисом bash $(...).

perl -p -i.bak -e 's{/env/file1/}{/env/file2/}g' $(grep -Irc "/env/file1/" /env/scripts/ | cut -d':' -f1 | sort | uniq) 
0

Я бы забыл perl один вкладыш, чтобы вместо этого использовать xargs и sed.

grep -Irc "/env/file1/" /env/scripts/ | cut -d':' -f1 | sort | uniq | xargs sed -ibak ':/env/file1/:/env/file2/:'