Потоковый текстовый редактор 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
1
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
1
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
1
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
1
2
3
4
5

Команда a добавляет текст после указанной строки.

user@debian-server:~/test$ sed '2a\  subline' file.txt 
first LINE LINE
second LINE LINE
  subline
third LINE LINE
1
2
3
4
5

Редактор sed поддерживает другие сложные возможности: сложные замены с регулярными выражениями, условные конструкции.

Ссылки

Последниее изменение: 21.12.2023, 13:23:47