Linux: Text Manipulation auf der Kommandozeile

2018-10-10 von Mario

Auf der Kommandozeile kann es von Zeit zu Zeit sehr hilfreich sein, Textmanipulationen vorzunehmen. Dafür können verschiedene Befehle zur Unterstützung verwendet werden. Anhand einer beispielhaften CSV-Datei werden einige Kommandos vorgestellt.. Die Datei beinhaltet die folgenden Daten:

cat beispieldaten.csv
UserId, Datum, ProjektName, Beschreibung, Dauer
1, 2018-11-01, Test Projekt, Das ist ein Test, 180
2, 2018-08-17, Hausbau, Mit Dach, 240
3, 2018-07-25, Wichtiger Kunde, Streng Geheim, 220

 

cut

Mit dem Befehl “cut” können Texte mit Hilfe der Angabe eines Trennzeichens abgeschnitten werden.

cut -d[delimiter] -f[field number] [filename]
Parameter Beschreibung
delimiter Trennzeichen
field number Feldnummer
filename Dateiname

 

Mit dem Parameter “-d” und dem “,” wird das Komma als Trennzeichen festgelegt. Mit dem Parameter “-f3” wird die dritte Spalte für die Ausgabe angegeben.

cut -d, -f3 beispieldaten.csv

Die Ausgabe stellt sich wie folgt dar:

ProjektName
Test Projekt
Hausbau
Wichtiger Kunde

 

awk

Wenn das Trennzeichen unbekannt ist, kann der Befehl “awk” verwendet werden. Mit “cat” wird die Datei ausgegeben und mit der Pipe (“|”) wird die Ausgabe zum Befehl “awk” umgeleitet. Dabei wird der Parameter “{print $2}” an “awk” übergeben, was dazu führt, dass die zweite Spalte der CSV-Datei ausgegeben wird.

cat beispieldaten.csv | awk '{print $2}'

Die Ausgabe zeigt die zweite Spalte der CSV-Datei an.

Datum,
2018-11-01,
2018-08-17,
2018-07-25,

Der Befehl “awk” ist in Kombination mit anderen Befehlen sehr hilfreich. Z.B. mit dem Kommando “df”:

df | awk '{print $5}'

 

sed

Mit “sed” können Texttransformationen durchgeführt werden (Ersetzen, Löschen, Ausgeben, Einfügen).

sed ‘s/regex/replacement/flag’ file
Parameter Beschreibung
s Der Parameter s steht für substitute und ändert alle Angaben (regulärer Ausdruck) in einen neuen Wert.
regex An dieser Stelle kann ein Wort oder ein regulärer Ausdruck gesetzt werden.
replacement Hier wird das zu ersetzende Zeichen oder Wort angegeben.
flag Mit dem Flag kann die Gültigkeit des Befehls eingeschränkt werden. Mit dem Buchstaben “g” (global) wird der Befehl auf den gesamten Inhalt angewendet.

 

cat beispieldaten.csv | sed 's/18/19/g'

Bei der Ausgabe wurden alle Zahlen “18” durch die Zahl “19” ersetzt.

UserId, Datum, ProjektName, Beschreibung, Dauer
1, 2019-11-01, Test Projekt, Das ist ein Test, 190
2, 2019-08-17, Hausbau, Mit Dach, 240
3, 2019-07-25, Wichtiger Kunde, Streng Geheim, 220

 

 

Kategorie: IT Schlagwörter: