Benutzer-Werkzeuge

Webseiten-Werkzeuge


compound_commands

Zusammengesetzte Kommandos

Hier sind einige Arten aufgeführt wie man Kommandos zusammensetzen kann. Die erstere leitet dabei die Ausgabe eines Kommandos als Eingabe in ein anderes Kommando um, die zweite nutzt die Ausgabe eines Kommandos als Argument für ein anderes Kommando.

Ausgabe als Eingabe

Um die Ausgabe eines Kommandos als Eingabe in ein anderes Kommando umzuleiten wird Pipelining verwendet. Die bekanntesten Filterprogramme sind grep, sed & awk. Insbesondere die letzteren beiden Kommandos sind sehr vielfältig und bilden fast schon eine Wissenschaft für sich.

Es lohnt sich ein paar Beispiele zu kennen wie man Tätigkeiten wie Suchen & Ersetzen, Sortieren und Filtern recht kurz ausdrücken kann um große Veränderungen am Output zu erzeugen.

cat file | grep user alle Zeilen, die „user“ enthalten aus file ausgeben
cat file | grep -e user -e hans … , die „user“ oder „hans“ beinhalten
cat file | awk '{ print $1 $3 }' Ausgeben der ersten und dritten Spalte (bei whitespace-getrennten Tabellen o.Ä.)
cat file | awk -F',' '{ print $1 $3 }' … bei csv-Dateien
cat file | sed 's/hans/esel/' das erste Vorkommen von „hans“ mit „esel“ ersetzen und ausgeben
cat file | sed 's/hans/esel/g' „hans“ überall mit „esel“ ersetzen und ausgeben cat file
sed -e 's/hans/esel/g' -e '/gurke/tomate/g' mehrere Ausdrücke ersetzen
sed '/^#.*/d' file löschen aller Zeilen, die mit # beginnen und ausgeben
sed -i '/^#.*/d' file in-place-löschen aller Kommentare in file (Achtung! Überschreibt file!)
cat file | grep -v „^#.*“ |\
awk '{ print $3„-„$4 }' |\
sed 's/ja/nein/' \
> file2
filtere umgekehrt (-v) nach Kommentaren
gib 3. & 4. Spalte mit “-“ dazwischen aus
ersetze im Anschluss ja durch nein
schreibe die Ausgabe in file2 (es erfolgt
damit keine Ausgabe auf die Konsole)
awk -F':' '!seen[$3]++' file Entfernen von Zeilen aus einer doppelpunkt getrennten Liste, die in der dritten Spalte duplikate beinhalten unix.stackexchange.com

Es gibt noch einige weitere solcher Filterprogramme, z.B sort und uniq.

cat file | sort | uniq sortieren und anschließendes Entfernen von Duplikaten in einer Datei

Ausgabe als Argument

nano $(which script) which gibt den absoluten Pfad des Programms oder des skripts zurück. Dieser wird dann als Argument für nano genommen
nano `which script` das Gleiche, aber mit Backticks
compound_commands.txt · Zuletzt geändert: 2018/02/12 19:35 von admin