Как сделать Multi file найти и заменить из Unix - PullRequest
1 голос
/ 03 июля 2010

Я хочу заменить «localhost» фактическим IP-адресом, таким как «1.1.1.1», в каждом файле в каталоге, включая подпапки, плюс я хочу записать имена файлов, которые он изменил. Мне трудно это делать, какую команду мне использовать?

Ответы [ 2 ]

2 голосов
/ 03 июля 2010
grep -r --files-with-matches localhost *|tee changed_files|xargs sed -i 's/localhost/1.1.1.1/g'

Измененные файлы будут зарегистрированы как changed_files.

1 голос
/ 03 июля 2010

find /path/to/all/files -type f -exec sed -i 's/localhost/IP/g' {}\; должно работать. Или вы получите представление о том, как заставить sed работать с каждым найденным файлом.

...