目次(まとめ)
◾️ リダイレクションとは、コマンドの標準出力をファイル出力に切り替える機能
◾️ パイプとは、あるコマンドの標準出力を次のコマンドに受け渡す機能
◾️ 参考文献
こんにちは、みっちゃんです。
今回の記事では「コマンドを実行した結果をファイルに出力したい」「複数のコマンドを組み合わせて実行したい」という方向けに、リダイレクションとパイプの使い方を解説します。
リダイレクションとは、コマンドの標準出力をファイル出力に切り替える機能
ここでは、説明のため、以下のようなテキストファイル(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塾 応用情報技術者」技術評論社