16 октомври, 2007

Заместване на текст в група файлове

Става с ето този Линукс скрипт:

cat file-list.txt | xargs sed -i 's/pesho/gosho/g'


където file-list.txt е текстов файл, на всеки ред от който има пълен път до някой файл.

Скриптът търси ред по ред във всички файлове от списъка (file-list.txt) и заменя текста "pesho" с "gosho". Между двете наклонени черти където се пише търсения текст може да има регулярен израз. (т.е. то е регулярен израз :) )

Ако пропуснете 'g' накрая - ще сменя само първото срещане на търсения стринг на ред.

1 коментар:

Emo каза...

И понеже ни мързи списъка с файловете можем да си го създадем не хамалската. Примерно ако файловете имат общо разширение .conf с:
find /home/emo -name *.conf > file-list.txt