Der unbekannte Befehl – „tac“ und „rev“ die Umkehrer

Den Befehl cat (catenate) lernen die meisten schnell kennen. Obwohl es zu den am meisten missbrauchten Befehle gehört (to caternate: verketten), cat ist eigentlich dazu da zwei Dateien aneinander zu hängen, wird er allgemein dazu benutzt um Dateiinhalte anzuzeigen oder per Pipe an ein anderes Programm zu übergeben. Dabei entstehen auch recht unschöne Konstrukte.

cat /etc/passwd | grep root

übergibt die Datei passwd an die Standardausgabe (STDOUT) und diese wird dann an grep übergeben das nach der Zeichenkette „root“ sucht und diese ausgibt. Sehr unschön weil überflüssig und ein typischer Fall von „useless-use-of-pipe„. Ein einfacher Aufruf von:

grep /etc/passwd root

würde einfacher zum gleichen Ergebnis führen.

Nun gut, die kleine Exkursion in cat möchte ich beenden und zu den beiden Umkehrern kommen. cat gibt also Dateien an die Standardausgabe aus und was macht tac. Genau das Gleiche nur in umgekehrter Reihenfolge – tac ist nicht umsonst cat rückwärts geschrieben.

Die Datei zaehlung.txt habe den folgenden Inhalt:

1 Lorem 
2 ipsum 
3 dolor 
4 sit 
5 amet 
6 consectetur 
7 adipisici 
8 elit 
9 sed 
10 eiusmod

dann gibt cat zaehlung.txt genau diesen Text aus. Aber was macht tac daraus?

$ tac zaehlung.txt 
10 eiusmod 
9 sed 
8 elit 
7 adipisici 
6 consectetur 
5 amet 
4 sit 
3 dolor 
2 ipsum 
1 Lorem

tac gibt also den Inhalt der Datei in der Standardausgabe zeilenmäßig in genau umgekehrter Reihenfolge aus. tac zeichnet sich nicht durch besonders viele Optionen aus und ich kann mich nicht dran erinnern, dass ich den Befehl öfter gebraucht habe.

Der andere Befehl in diesem Artikel ist der Befehl rev. Wir benutzen die gleiche Datei zaehlung.txt von oben. Was macht nun rev daraus?

$ rev zaehlung.txt 
meroL 1 
muspi 2 
rolod 3 
tis 4 
tema 5 
rutetcesnoc 6 
icisipida 7 
tile 8 
des 9 
domsuie 01

rev gibt wieder die Datei zaehlung.txt in der Standardausgabe, aber diesmal in umgekehrter Reihenfolge was den Zeileninhalt betrifft, aus. Die Zeilenreihenfolge selber bleibt hier erhalten. Auch hier fallen mir als Anwendung nicht wirklich viel ein – vielleicht gibts eine Anwendung im Shell-Scripting …

Do NOT follow this link or you will be banned from the site!