目次(まとめ)

◾️ リダイレクションとは、コマンドの標準出力をファイル出力に切り替える機能

◾️ パイプとは、あるコマンドの標準出力を次のコマンドに受け渡す機能

◾️ 参考文献

 

こんにちは、みっちゃんです。

 

今回の記事では「コマンドを実行した結果をファイルに出力したい」「複数のコマンドを組み合わせて実行したい」という方向けに、リダイレクションとパイプの使い方を解説します。

リダイレクションとは、コマンドの標準出力をファイル出力に切り替える機能

ここでは、説明のため、以下のようなテキストファイル(test.txt)を使います。

A	90
B	50
C	56
D	84
E	49

このようなファイルの中身を、ターミナル上で確認するコマンドには、"cat" というのがあります。

$ cat test.txt
A	90
B	50
C	56
D	84
E	49

このようにコマンドの出力をターミナル上の画面に表示させることを「標準出力」と言います。

"test.txt" は5行しかないファイルなので、標準出力しても大きな問題はないですが、大きなファイルになるほど、画面に表示させても、ファイルの全体を理解することが難しくなります。

そこで、以下のように、リダイレクションの機能を使うことで、標準出力をファイル出力に切り替えることができます。

つまり、標準出力していた内容を、"out.txt" というファイルに出力することになります。

$ cat test.txt > out.txt

この場合には、"test.txt" と "out.txt" は同じ内容になります。

パイプとは、あるコマンドの標準出力を次のコマンドに受け渡す機能

例えば、以下のように、"cat" コマンドを実行して、ファイルの内容を標準出力します。

$ cat test.txt
A	90
B	50
C	56
D	84
E	49

この標準出力から、"A" という文字が含まれている行だけを取り出したい場合には、以下のようにパイプ "|" の機能を使えます。

$ cat test.txt | grep "A"
A	90

パイプ "|" の機能は、複数使うことができるので、この標準出力結果から1列目だけ取り出したい場合には、以下のように実行できます。

$ cat test.txt | grep "A" | awk '{print $1}'
A

以下のように、リダイレクションの機能を使えば、標準出力をファイル出力に切り替えることも可能です。

$ cat test.txt | grep "A" | awk '{print $1}' > out.txt

参考文献

きたみりゅうじ「キタミ式イラストIT塾 応用情報技術者」技術評論社