Заменить текст программированием оболочки - PullRequest
0 голосов
/ 10 октября 2010

У меня более 1000 файлов, и я хочу заменить специальный текст во всех них другой фразой.

как я могу это сделать с помощью сценария оболочки в Linux?

Ответы [ 5 ]

5 голосов
/ 10 октября 2010
1 голос
/ 10 октября 2010

Just Bash

for file in *.txt
do
   while read -r line
   do
     case "$line" in
       "*pattern*") line="${line//pattern/new}";;
     esac
     echo "$line"
   done <"$file" > t
   mv t "$file"
done
1 голос
/ 10 октября 2010

Вы также можете использовать perl:

perl -pi -e 's/find/replace/g' *.txt
1 голос
/ 10 октября 2010

Примерно так:

for file in *.txt
do
    cp $file $file.tmp
    cat $file.tmp | sed 's/foo/bar/g' > $file
done
0 голосов
/ 10 октября 2010

Использование sed .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...