Цели написать подробнее чем в man’e у меня нет. Только то что часто нужно и используется изо дня в день.
В примерах файлы имеют имена file**.txt.
Например file01.txt следующего содержания:
a
fq2
f
wafew
f
word
word
wordwordword
asdfa3rfafword32rqafef
Поиск
Найти все файлы в которых содержиться word:
./file04.txt:word
./file01.txt:word
./file01.txt:word
./file01.txt:wordwordword
./file01.txt:asdfa3rfafword32rqafef
./file08.txt:wordwordword
./ — указывает директорию в которой ищем.
Поиск без учета регистра:
./file04.txt:word
./file01.txt:word
./file01.txt:word
./file01.txt:wordwordword
./file01.txt:asdfa3rfafword32rqafef
./file08.txt:wordwordword
./file04.txt
./file01.txt
./file08.txt
Найти файл с нужным именем:
./file01.txt
Найти все файлы с определенным расширением:
./file09.txt
./file04.txt
./file05.txt
./file07.txt
./file03.txt
./file06.txt
./file02.txt
./file10.txt
./file01.txt
./file08.txt
6
7
8
9
Поиск с заменой
Также легко можно заменять строки с помощью sed.
Теперь file01.txt выглядет так:
a
fq2
f
wafew
f
WORDnew
WORDnew
WORDnewWORDnewWORDnew
asdfa3rfafWORDnew32rqafef
Если повторить выполнение команды, ничего не измениться, так как sed чувствителен к регистрку. Чтобы это убрать можно использовать ключ i:
Теперь file01.txt будет измениться до состояния:
a
fq2
f
wafew
f
WORDnewnew
WORDnewnew
WORDnewnewWORDnewnewWORDnewnew
asdfa3rfafWORDnewnew32rqafef
И наконец поиск и замена во всех файлах содеражихся в этом каталоге и ниже: