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

Форум предназначен для новичков. В нем предполагается рассматривать вопросы, которые встают на первых этапах освоения Linux
Banev

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

Сообщение Banev »

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

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

ключевые слова для поиска - perl regular expression
Опыт растет прямо пропорционально выведенному из строя оборудованию

AlexL

Сообщение AlexL »

разумные комбинации sed и awk

Banev

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

Сообщение Banev »

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

Anonymous

Сообщение Anonymous »

vim argdo bufdo
Example: >
:args *.[ch]
:argdo %s/\<my_foo\>/My_Foo/ge | update

Гость

Сообщение Гость »

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 *

Аватара пользователя
mend0za
Неотъемлемая часть форума
Сообщения: 2332
Зарегистрирован: 30 авг 2002, 12:33
Откуда: Minsk

Сообщение mend0za »

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

sed 's/old/new/g'
флаг g в sed - замена всех вхождений в строке.
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...

Ответить