GNU/Linux >> Linux の 問題 >  >> Linux

LinuxシェルでコマンドのStdoutを逆の順序で印刷する方法

最近、Linuxコマンドの標準出力(stdout)を逆の順序で表示するという課題に遭遇しました。

たとえば; ls -lrtは、作成/更新された日付に基づいてファイルとディレクトリを一覧表示しますが、逆方向に出力を取得したいと考えています。

解決策: Linuxシェルには豊富な機能があります。コマンドが組み込まれています。つまり、tac JayLepreauとDavidMacKenzieによって作成されたcoreutilsの一部。ファイルを逆の順序で連結して印刷します。

つまり、コマンドのstdoutはtacへの標準入力として指定され、標準入力を標準出力にコピーして、各行のレコードを個別に反転します。

ステップ1:デフォルトの順序でファイルを一覧表示します。

[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

ステップ2:デフォルトの順序とは逆の順序でファイルを一覧表示します。

[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

この組み込みコマンドtac 任意のLinuxコマンドまたは独自のスクリプトで使用できます。


Linux
  1. コマンドまたはシェルスクリプトの出力がStdoutまたはStderrであるかどうかを確認する方法は?

  2. Linux で制限付き Bash シェルを構成する方法

  3. Linux ですべてのシェル コマンドをログに記録する方法

  1. LinuxでSuコマンドを使用する方法

  2. Linuxコマンド出力をファイルに出力するには?

  3. Linuxでアプリケーションによるメモリ使用量を制限するには?

  1. Linuxでシェルを変更する方法

  2. Linux でシェル エイリアスを使用する方法

  3. Linux でコマンド ライン シェル関数を使用する方法