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

So drucken Sie Stdout eines Befehls in umgekehrter Reihenfolge auf einer Linux-Shell

Kürzlich trat eine Herausforderung auf, die Standardausgabe (stdout) eines Linux-Befehls in umgekehrter Reihenfolge anzuzeigen.

Für zB; ls -lrt würde die Dateien und Verzeichnisse basierend auf dem Erstellungs-/Aktualisierungsdatum auflisten, möchte aber die Ausgabe in umgekehrter Richtung erhalten.

Lösung:  Die Linux-Shell ist reich an Funktionen. Es hat einen eingebauten Befehl namens tac Teil der von Jay Lepreau und David MacKenzie geschriebenen Coreutils. Es verkettet und druckt Dateien in umgekehrter Reihenfolge.

dh stdout des Befehls wird als Standardeingabe an tac übergeben und es kopiert die Standardeingabe in die Standardausgabe, wobei die Datensätze jede Zeile einzeln umgedreht werden.

Schritt 1:Dateien in der Standardreihenfolge auflisten.

[root@ssl httpd]$ ls -rlt
total 12
lrwxrwxrwx 1 root root 29 Sep 8 15:58 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx 1 root root 19 Sep 8 15:58 logs -> ../../var/log/httpd
drwxr-xr-x 2 root root 4096 Sep 8 15:58 conf
lrwxrwxrwx 1 root root 10 Sep 8 15:58 run -> /run/httpd
drwxr-xr-x 2 root root 4096 Nov 28 16:41 conf.modules.d
drwxr-xr-x 2 root root 4096 Nov 28 16:41 conf.d

Schritt 2:Dateien in umgekehrter Reihenfolge ihrer Standardreihenfolge auflisten.

[root@ssl httpd]$ ls -lrt | tac
drwxr-xr-x 2 root root 4096 Nov 28 16:41 conf.d
drwxr-xr-x 2 root root 4096 Nov 28 16:41 conf.modules.d
lrwxrwxrwx 1 root root 10 Sep 8 15:58 run -> /run/httpd
drwxr-xr-x 2 root root 4096 Sep 8 15:58 conf
lrwxrwxrwx 1 root root 19 Sep 8 15:58 logs -> ../../var/log/httpd
lrwxrwxrwx 1 root root 29 Sep 8 15:58 modules -> ../../usr/lib64/httpd/modules

Dieser eingebaute Befehl tac kann auf jedem Linux-Befehl oder auch auf Ihren eigenen Skripten verwendet werden.


Linux
  1. Wie kann man feststellen, ob die Ausgabe eines Befehls oder Shell-Skripts Stdout oder Stderr ist?

  2. So ändern Sie die Shell unter Linux

  3. So verwenden Sie Befehlszeilen-Shell-Funktionen in Linux

  4. Wie finde ich meine Shell-Version mit einem Linux-Befehl?

  5. Wie drucke ich die Linux-Befehlsausgabe in eine Datei?

So führen Sie einen Linux-Shell-Befehl / ein Skript im Hintergrund aus

Quellbefehl unter Linux

So drucken Sie doppelte Zeilen in einer Textdatei unter Linux

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

So verwenden Sie den Declare-Befehl in der Linux Bash Shell

Wie drucke ich das Arbeitsverzeichnis mit dem Linux-Befehl pwd?