sed
Adresse und Adressbereich
Suche…
Einführung
Sed-Befehle können so festgelegt werden, dass sie nur für bestimmte Zeilen verwendet werden, indem Adressen oder Adressbereiche verwendet werden .
Spezifische Zeile
$ cat ip.txt
address
range
substitution
pattern
sample
N- te Linie
$ sed -n '2p' ip.txt range $ sed '3d' ip.txt address range pattern sample
Letzte Linie
$ sed -n '$p' ip.txt sample
Spezifischer Linienbereich
$ cat ip.txt
address
range
substitution
pattern
sample
Der angegebene Bereich umfasst diese Zeilennummern
$ sed -n '2,4p' ip.txt range substitution pattern
$
kann die letzte Zeile angegeben werden. Zwischen Adresse und Befehl kann zur besseren Übersicht ein Leerzeichen verwendet werden$ sed -n '3,$ s/[aeiou]//gp' ip.txt sbstttn pttrn smpl
i- te Zeile bis i + j- te Zeile
$ sed '2,+2d' ip.txt address sample
i- te Linie und i + j , i + 2 j , i + 3 j usw.
$ sed -n '1~2p' ip.txt address substitution sample
Zeilen, die dem regulären Ausdruck entsprechen
$ cat ip.txt
address
range
substitution
pattern
sample
Add Sub Mul Div
Linien, die einem Muster entsprechen
$ 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
Reihe von Mustern
$ sed -n '/add/,/sub/p' ip.txt address range substitution $ sed -n '/a/,/e/p' ip.txt address range pattern sample
Hinweis
- Im zweiten Beispiel stimmte es mit zwei Bereichen überein - Zeilen
1,2
und Zeilen4,5
- Siehe Verwenden verschiedener Trennzeichen zur Verwendung anderer Zeichen anstelle von
/
zur Angabe des Musters
Groß- und Kleinschreibung wird nicht berücksichtigt
$ 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
Festlegen des Bereichs anhand von Nummer und Muster
$ cat ip.txt
address
range
substitution
pattern
sample
Add Sub Mul Div
Zeilennummer für übereinstimmendes Muster
$ sed -n '2,/pat/p' ip.txt range substitution pattern
Zeilenanpassungsmuster an Zeilennummer
$ sed '/pat/,$d' ip.txt address range substitution
Zeilenanpassungsmuster plus Anzahl der nachfolgenden Zeilen
$ sed -n '/add/I,+1p' ip.txt address range Add Sub Mul Div
0
kann als Startzeilennummer verwendet werden, um das Bereichsende zu signalisieren, wenn das Muster der ersten Zeile des Eingangs entspricht$ 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
Adressbereich negieren
$ cat ip.txt
address
range
substitution
1234
search pattern
sample
Add Sub Mul Div
Löschen von anderen Zeilen als der angegebenen Adresse
$ 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
Suchen und ersetzen Sie Zeilen, die keinem Muster entsprechen
$ 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