Страница 1 из 1

Поиск и замена текста

Добавлено: 29 окт 2003, 10:28
Banev
Я слышал, что возможен поиск и замена текста (слов, выражений) в большом количестве текстовых файлов? Как это делается? Скажем, требуется в нескольких файлах заменить одно неправильно написанное слово на правильный вариант?

Добавлено: 29 окт 2003, 10:38
Llama
ключевые слова для поиска - perl regular expression

Добавлено: 29 окт 2003, 11:03
AlexL
разумные комбинации sed и awk

Поиск и замена текста

Добавлено: 29 окт 2003, 11:07
Banev
Llama писал(а):ключевые слова для поиска - perl regular expression
Это сложновато выглядит. Попроще чего-нибудь бывает.

Добавлено: 29 окт 2003, 11:12
Anonymous
vim argdo bufdo
Example: >
:args *.[ch]
:argdo %s/\<my_foo\>/My_Foo/ge | update

Добавлено: 29 окт 2003, 12:01
Гость
sed s/old_pattern/new_pattern/ < input_file > output_file

есть ньюанс
sed работает со строками
и если в строке несколько old_pattern, при замене первого он спрыгивает на следующую строчку
в общем нужно выполнить эту команду несколько раз

если дофига файов лучше зумутить sed в скрипт
типа

#!/bin/bash
# script.sh
sed s/blablabla/BLABLABLA/ <$1 >temp
mv temp $1

P.S. может я где наврал ибо sed-ом обычно не пользуюсь
VIM forever!!


и просто ./script.sh *

Добавлено: 29 окт 2003, 12:20
mend0za

Код: Выделить всё

sed 's/old/new/g'
флаг g в sed - замена всех вхождений в строке.