Sed/Zeilen ausgeben

Aus Foxwiki
Version vom 31. März 2023, 10:38 Uhr von Dirkwagner (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „==Zeilen ausgeben== ===Ausgabe [p]=== Zunächst wenden wir das Kommando p auf die ersten 3 Zeilen der Datei an: $ '''sed '1,3p' test.txt''' 1 Der Aufruf des Stream Editors besitzt immer das Format: 1 Der Aufruf des Stream Editors besitzt immer das Format: 2 2 3 sed 'Kommando' Dateiname 3 sed 'Kommando' Dateiname 4 5 Dabei kann dem Kommando mitgeteilt werden, welche Zeilen der 6 Eingabedatei es bearbeiten soll. *Als Adressierung kommen folg…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Zeilen ausgeben

Ausgabe [p]

Zunächst wenden wir das Kommando p auf die ersten 3 Zeilen der Datei an:

$ sed '1,3p' test.txt
1 Der Aufruf des Stream Editors besitzt immer das Format:
1 Der Aufruf des Stream Editors besitzt immer das Format:
2 
2 
3 sed 'Kommando' Dateiname
3 sed 'Kommando' Dateiname
4 
5 Dabei kann dem Kommando mitgeteilt werden, welche Zeilen der
6 Eingabedatei es bearbeiten soll. 
  • Als Adressierung kommen folgende
7 Mechanismen in Frage:
8 
9 Keine Angabe Alle Zeilen
10 Nummer Genau diese Zeile
11 Start, Ende Alle Zeilen von "Start" bis "Ende"
12 $ Symbolisiert die letzte Zeile
13 RegEx Zeilen, die den Regulären Ausdruck enthalten
14 1, RegEx Von Zeile 1 bis zur ersten Zeile, die RegEx enthält

Offensichtlich zeigt der Stream Editor etwas mehr an, als uns lieb ist; er gibt einfach die gesamte Datei aus und wiederholt nur die Zeilen, die durch das Kommando »1,3p« bearbeitet wurden.

Mehrfache Ausgaben unterbinden [-n]

Um solche »überflüssigen« Ausgaben zu unterbinden, muss die Option »-n« verwendet werden:

sed -n '1,3p' test.txt
 1 Der Aufruf des Stream Editors besitzt immer das Format:
 2 
 3 sed 'Kommando' Dateiname

Bei der Adressierung mittels regulärer Ausdrücke müssen diese in Schrägstriche (Slashes) eingeschlossen sein:

sed -n '/RegEx/,/RegEx/p' test.txt
 13 RegEx Zeilen, die den Regulären Ausdruck enthalten
 14 1, RegEx Von Zeile 1 bis zur ersten Zeile, die RegEx enthält

Printing Operation in Sed

  • is a command for printing the data from the pattern buffer.
  • To suppress automatic printing of pattern space use -n command with sed.
  • sed -n option will not print anything, unless an explicit request to print is found.

Syntax:

# sed -n 'ADDRESS'p filename 
# sed -n '/PATTERN/p' filename 

Let us first create thegeekstuff.txt file that will be used in all the examples mentioned below.

# cat thegeekstuff.txt 
1. Linux - Sysadmin, Scripting etc. 
2. Databases - Oracle, mySQL etc. 
3. Hardware 
4. Security (Firewall, Network, Online Security etc) 
5. Storage 
6. Cool gadgets and websites 
7. Productivity (Too many technologies to explore, not much time available) 
8. Website Design 
9. Software Development 
10.Windows- Sysadmin, reboot etc.