Потоковый текстовый редактор sed
Стандартный способ запуска редактор sed
с указанием скрипта и входного файла. Можно указать несколько файлов в этом случае они будут соединены и операции с ними будут происходить как с одним большим файлом. Результаты команда отправляет в stdout
.
user@debian-server:~/test$ cat file.txt
first line
second line
third line
user@debian-server:~/test$ sed s/line/LINE/ file.txt
first LINE
second LINE
third LINE
user@debian-server:~/test$ cat file.txt
first line
second line
third line
2
3
4
5
6
7
8
9
10
11
12
С опцией -i
команда sed
изменит входной файл.
user@debian-server:~/test$ sed -i s/line/LINE/ file.txt
user@debian-server:~/test$ cat file.txt
first LINE
second LINE
third LINE
2
3
4
5
Скрипт sed
поддерживает разные команды. Команда s
— замена текста с помощью регулярных выражений, её полный синтаксис следующий s/regexp/replacement/flags
. По умолчанию команда s
заменяет только первое вхождение в строке, а с флагом g
— все вхождения.
user@debian-server:~/test$ cat file.txt
first LINE LINE
second LINE LINE
third LINE LINE
user@debian-server:~/test$ sed s/LINE/line/ file.txt
first line LINE
second line LINE
third line LINE
user@debian-server:~/test$ sed s/LINE/line/g file.txt
first line line
second line line
third line line
2
3
4
5
6
7
8
9
10
11
12
Команда d
удаляет строки из входного потока.
user@debian-server:~/test$ sed 2d file.txt
first LINE LINE
third LINE LINE
user@debian-server:~/test$ sed 2,3d file.txt
first LINE LINE
2
3
4
5
Команда a
добавляет текст после указанной строки.
user@debian-server:~/test$ sed '2a\ subline' file.txt
first LINE LINE
second LINE LINE
subline
third LINE LINE
2
3
4
5
Редактор sed
поддерживает другие сложные возможности: сложные замены с регулярными выражениями, условные конструкции.