どうも、シローです。

今回はパイプラインについて整理していきます。

コマンドの出力を次のコマンドに渡すことができるので、複数のコマンドを組み合わせて色んなに応用できるテクニックです。

パイプラインとは

コマンドの標準出力を別のコマンドの標準入力に渡すことです。

記述

コマンド | コマンド

コマンドとコマンドの間に|を入れるだけです。

例:lsコマンドの結果を絞り込みたい

代表的な例としては、lsコマンドで特定のファイル・フォルダ名に絞って出力したい場合でしょうか

絞り込みはgrepコマンドを用います。

$ ls /usr/bin | grep ls  lsattr  lscpu  lsipc  lslocks  lslogins  lsmem  lsns  md5sum.textutils

 

例:lsコマンドで出力したファイルの文字数カウントをする

次の例としては、xargsコマンドとwcコマンドと組み合わせてlsコマンドで出力したファイルごとの文字数を出すというものです。

$ ls ./ | xargs wc    24   41  305 create_html.sh     3    3   15 echo_result.txt     1    9   52 error.txt    24   41  305 here_document.sh     5    7   40 here_string.sh     9    9   49 ls_result.txt    10   18  101 result.txt     9   14  132 sample1.html     3    4   31 test.html     0    0    0 word.txt    88  146 1030 total

まとめ

  • パイプラインはコマンドの出力結果を次のコマンドの標準入力に渡すことができる
  • lsコマンドの出力を別のコマンドに渡す時によく見られるかも?