sed
Диапазон адресов и адресов
Поиск…
Вступление
Команды Sed могут быть указаны, чтобы действовать только на определенных линиях, используя адреса или диапазоны адресов .
Конкретная линия
$ cat ip.txt
address
range
substitution
pattern
sample
N- я строка
$ sed -n '2p' ip.txt range $ sed '3d' ip.txt address range pattern sample
Последняя линия
$ sed -n '$p' ip.txt sample
Конкретный диапазон линий
$ cat ip.txt
address
range
substitution
pattern
sample
Указанный диапазон включает номера строк
$ sed -n '2,4p' ip.txt range substitution pattern
$
может использоваться для указания последней строки. Пространство может использоваться между адресом и командой для ясности$ sed -n '3,$ s/[aeiou]//gp' ip.txt sbstttn pttrn smpl
i- я строка на i + j- я строка
$ sed '2,+2d' ip.txt address sample
i- я строка и i + j , i +2 j , i +3 j и т. д.
$ sed -n '1~2p' ip.txt address substitution sample
Строки, соответствующие шаблону регулярного выражения
$ cat ip.txt
address
range
substitution
pattern
sample
Add Sub Mul Div
Линии, соответствующие шаблону
$ sed '/add/d' ip.txt range substitution pattern sample Add Sub Mul Div $ sed -n '/t/p' ip.txt substitution pattern $ sed -n '/[A-Z]/ s| |/|gp' ip.txt Add/Sub/Mul/Div
Диапазон шаблонов
$ sed -n '/add/,/sub/p' ip.txt address range substitution $ sed -n '/a/,/e/p' ip.txt address range pattern sample
Заметка
- Во втором примере он соответствовал двум диапазонам - линиям
1,2
и линиям4,5
- См. Использование разных разделителей о том, как использовать другие символы вместо
/
для указания шаблона
Нечувствительность к регистру
$ sed -n '/add/Ip' ip.txt address Add Sub Mul Div $ sed -n '/add/I,/sub/p' ip.txt address range substitution Add Sub Mul Div
Определение диапазона с использованием как числа, так и рисунка
$ cat ip.txt
address
range
substitution
pattern
sample
Add Sub Mul Div
Номер строки для сопоставления строк
$ sed -n '2,/pat/p' ip.txt range substitution pattern
Линейный шаблон совпадения с номером строки
$ sed '/pat/,$d' ip.txt address range substitution
Соответствующий шаблон линии плюс количество строк после него
$ sed -n '/add/I,+1p' ip.txt address range Add Sub Mul Div
0
может использоваться в качестве номера стартовой линии для окончания конца диапазона, когда шаблон соответствует первой строке ввода$ sed -n '0,/r/p' ip.txt address $ sed -n '1,/r/p' ip.txt address range $ sed -n '0,/u/p' ip.txt address range substitution
Отрицательный диапазон адресов
$ cat ip.txt
address
range
substitution
1234
search pattern
sample
Add Sub Mul Div
Удаление строк, отличных от указанного адреса
$ sed '/[0-9]/!d' ip.txt 1234 $ sed -n '/[0-9]/p' ip.txt 1234 $ sed '$!d' ip.txt Add Sub Mul Div $ sed -n '$p' ip.txt Add Sub Mul Div
Поиск и замена строк, не соответствующих шаблону
$ sed '/ /! s/^/#/' ip.txt #address #range #substitution #1234 search pattern #sample Add Sub Mul Div $ sed '/add/,/sub/! s/[aeiou]//gi' ip.txt address range substitution 1234 srch pttrn smpl dd Sb Ml Dv