2010-01-14 3 views
2

У меня есть сценарий bash. Я пишу этот greps для пути к файлу. Я хочу иметь возможность использовать вывод grep для замены каждого экземпляра старого пути на новый путь к файлу.grep and sed - заменить все экземпляры строки

Пример:

grep -R "/~test/dev/portal" .

Я хочу, чтобы иметь возможность трубы этот выход в СЭД, чтобы заменить каждый экземпляр «/ ~ тест/DEV/портала /» с «/ приложения/портал /» (имейте в виду, что выход grep обычно больше одного файла)

Заранее благодарен!

+0

Проверьте на ServerFault ответы на подобные ответы. –

ответ

6
grep -ZlR "/~test/dev/portal" . | xargs -0 -l1 sed -i 's:/~test/dev/portal/:/apps/portal/:g' 
+0

Фантастический, спасибо! – hellopat

+1

'grep -Z | xargs -0' на всякий случай –

+0

Деннис, хорошие аргументы! Я даже не думал об их использовании для этого (я думаю, мне приходится изучать страницы руководства больше). 'grep -ZlR"/~ test/dev/portal ". | xargs -0 -l1 sed -i 's:/~ test/dev/portal /:/apps/portal /: g'' –

Смежные вопросы