GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Unix Sed Tutorial:Dateizeilen anhängen, einfügen, ersetzen und zählen

Dieser Artikel ist Teil der fortlaufenden Unix-Tutorial-Serie für sed-Befehle. In unseren vorherigen Artikeln haben wir sed mit einzelnen Befehlen gelernt – Drucken, Löschen, Ersetzen und Dateischreiben.

Sed bietet viele Befehle, um eine Reihe von Operationen mit den Zeilen in einer Datei auszuführen.

In diesem Artikel sehen wir uns an, wie man eine Zeile in einer Datei anhängt, einfügt, ersetzt und wie man Zeilennummern einer Datei bekommt.

  • Zeilen anhängen
  • Zeilen einfügen
  • Zeilen ersetzen
  • Zeilen zählen

Lassen Sie uns zuerst die Datei thegeekstuff.txt erstellen, die in allen unten genannten Beispielen verwendet wird.

$cat thegeekstuff.txt
Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.

Zeilen mit Sed-Befehl anhängen

Sed bietet den Befehl „a“, der nach jeder Zeile eine Zeile mit der Adresse oder dem Muster anhängt.

Syntax:

#sed 'ADDRESS a\
	Line which you want to append' filename

#sed '/PATTERN/ a\
	Line which you want to append' filename

Sed Append Beispiel 1. Fügen Sie eine Zeile nach der 3. Zeile der Datei hinzu.

Fügen Sie nach der 3. Zeile die Zeile „Coole Gadgets und Websites“ hinzu. Der Befehl sed „a“ fügt die Zeile nach der Übereinstimmung ein.

$ sed '3 a\
> Cool gadgets and websites' thegeekstuff.txt

Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Cool gadgets and websites
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.

Sed Append Beispiel 2. Fügt eine Zeile nach jeder Zeile hinzu, die dem Muster entspricht

Der folgende sed-Befehl fügt die Zeile „Linux Scripting“ nach jeder Zeile hinzu, die dem Muster „Sysadmin“ entspricht.

$ sed '/Sysadmin/a \
> Linux Scripting' thegeekstuff.txt

Linux Sysadmin
Linux Scripting
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.
Linux Scripting

Sed Append Beispiel 3. Fügt eine Zeile am Ende der Datei hinzu

Im folgenden Beispiel wird die Zeile „Website-Design“ am Ende der Datei angehängt.

$ sed '$ a\
> Website Design' thegeekstuff.txt

Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.
Website Design

Zeilen mit Sed-Befehl einfügen

Der Sed-Befehl „i“ wird verwendet, um vor jeder Zeile mit dem Bereich oder Muster eine Zeile einzufügen.

Syntax:

#sed 'ADDRESS i\
	Line which you want to insert' filename

#sed '/PATTERN/ i\
	Line which you want to insert' filename

Sed Insert Beispiel 1. Fügen Sie eine Zeile vor der 4. Zeile der Zeile hinzu.

Fügen Sie vor der vierten Zeile eine Zeile „Coole Gadgets und Websites“ hinzu. Der Befehl „a“ fügt die Zeile nach der Übereinstimmung ein, während „i“ vor der Übereinstimmung einfügt.

$ sed '4 i\
> Cool gadgets and websites' thegeekstuff.txt

Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Cool gadgets and websites
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.

Sed Insert Beispiel 2. Fügen Sie vor jeder Zeile mit dem Muster eine Zeile ein

Der folgende sed-Befehl fügt vor jeder Zeile, die mit dem Muster „Sysadmin“ übereinstimmt, eine Zeile „Linux Scripting“ hinzu.

$ sed '/Sysadmin/i \
> Linux Scripting' thegeekstuff.txt

Linux Scripting
Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Linux Scripting
Windows- Sysadmin, reboot etc.

Sed Insert Example 3. Fügt eine Zeile vor der letzten Zeile der Datei ein.

Fügen Sie vor der letzten Zeile der Datei eine Zeile „Website-Design“ hinzu.

$ sed '$ i\
> Website Design' thegeekstuff.txt

Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Website Design
Windows- Sysadmin, reboot etc.

Zeilen mit Sed-Befehl ersetzen

Der Befehl „c“ in sed wird verwendet, um jede Zeile, die mit dem Muster übereinstimmt, oder Bereiche durch die neue angegebene Zeile zu ersetzen.

Syntax:

#sed 'ADDRESS c\
	new line' filename

#sed '/PATTERN/ c\
	new line' filename

Sed Replace Beispiel 1. Ersetzen Sie eine erste Zeile der Datei

Der folgende Befehl ersetzt die erste Zeile der Datei durch „The Geek Stuff“.

$ sed '1 c\
> The Geek Stuff' thegeekstuff.txt

The Geek Stuff
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.

Sed Replace Beispiel 2. Ersetzen Sie eine Zeile, die dem Muster entspricht

Ersetzen Sie jede Zeile mit dem Muster „Linux Sysadmin“ durch „Linux Sysadmin – Scripting“.

$ sed '/Linux Sysadmin/c \
> Linux Sysadmin - Scripting' thegeekstuff.txt

Linux Sysadmin - Scripting
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Windows- Sysadmin, reboot etc.

Sed Replace Beispiel 3. Ersetzen Sie die letzte Zeile der Datei

Der unten angegebene Sed-Befehl ersetzt die letzte Zeile der Datei durch „Letzte Zeile der Datei“.

$ sed '$ c\
> Last line of the file' thegeekstuff.txt

Linux Sysadmin
Databases - Oracle, mySQL etc.
Security (Firewall, Network, Online Security etc)
Storage in Linux
Productivity (Too many technologies to explore, not much time available)
Last line of the file

Zeilennummern mit Sed-Befehl drucken

„=“ ist ein Befehl in sed, um die aktuelle Zeilennummer auf der Standardausgabe auszugeben.

Syntax:

#sed '=' filename

Die obige Sendebefehlssyntax gibt die Zeilennummer in der ersten Zeile und die Originalzeile aus der Datei in der nächsten Zeile aus .

Der Befehl sed ‘=’ akzeptiert nur eine Adresse, wenn Sie also Zeilennummern für einen Bereich von Zeilen drucken möchten, müssen Sie die geschweiften Klammern verwenden.

Syntax:

# sed -n '/PATTERN/,/PATTERN/ {
=
p
}' filename

Beispiel für Zeilennummer 1. Finden Sie die Zeilennummer, die das Muster enthält

Der folgende sed-Befehl gibt die Zeilennummer aus, für die Übereinstimmungen mit dem Muster „Datenbanken“

vorliegen
$ sed -n '/Databases/=' thegeekstuff.txt

2

Zeilennummer Beispiel 2. Druckbereich von Zeilennummern

Drucken Sie die Zeilennummern für die Zeilenübereinstimmungen aus dem Muster „Oracle“ bis „Productivity“.

$ sed -n '/Oracle/,/Productivity/{
> =
> p
> }' thegeekstuff.txt

2
Databases - Oracle, mySQL etc.
3
Security (Firewall, Network, Online Security etc)
4
Storage in Linux
5
Productivity (Too many technologies to explore, not much time available)

Beispiel Zeilennummer 3. Druckt die Gesamtzahl der Zeilen in einer Datei

Die Zeilennummer der letzten Zeile der Datei ist die Gesamtzahl der Zeilen in einer Datei. Muster $ gibt die letzte Zeile der Datei an.

$ sed -n '$=' thegeekstuff.txt

6

Linux
  1. Ersetzen Sie eine Zeile durch einen anderen Inhalt mit Sed und Parallel für eine große Datei?

  2. Schneller Unix-Befehl zum Anzeigen bestimmter Zeilen in der Mitte einer Datei?

  3. Bash-Skript fügt Text an die erste Zeile einer Datei an

  4. sed:Wie wird eine Zeile ersetzt, wenn sie gefunden wird, oder an das Ende der Datei angehängt, wenn sie nicht gefunden wird?

  5. Ersetzen Sie Zeilen in einer Datei durch Zeilen in einer anderen durch die Zeilennummer

Unix Sed Tutorial:Drucken von Dateizeilen mit Adresse und Mustern

Unix Sed Tutorial:Suchen und Ersetzen von Text in einer Datei mit RegEx

Unix Sed Tutorial:Löschen Sie Dateizeilen mit Adresse und Mustern

Unix Sed Tutorial:So schreiben Sie mit Sed in eine Datei

Unix Sed Tutorial:Mehrzeilige Dateioperation mit 6 praktischen Beispielen

So verwenden Sie Sed zum Suchen und Ersetzen einer Zeichenfolge in einer Datei