ここではコマンド入出力におけるリダイレクトについて解説します。
リダイレクトとは
e-Wordsから引用した説明を見てみましょう。
OSのシェルの機能の一つで、コマンドやプログラムを実行する際のデータの入力元や出力先を利用者の指定したファイルに切り替えることをリダイレクションあるいはリダイレクトという。一般的な構成・設定のコンピュータでは入力をキーボードから、出力をディスプレイ(モニタ)へ行うようになっている(標準入力/標準出力)が、リダイレクションによって指定したファイルから読み込んだデータを入力としたり、出力したデータを指定したファイルに書き込んだりすることができる。
IT用語辞典 e-Words
要するに一般的にはキーボードやモニタを使うけど、入力をキーボード以外から行ったり、出力をモニタ以外にすることができるということですね
例えば、入力をファイルにして、出力をプリンターにするということもできるんですよ!
ちなみにリダイレクト(redirect)は「方向を向け直す」という意味があります。
「出力の方向を向け直す(リダイレクト)」、「入力の方向を向け直す(リダイレクト)」ということです。
語源がわかると覚えやすいですよね。
bashでリダイレクトしてみる
リダイレクトの構文
構文 | 意味 |
> file | fileがなければ作成して出力 fileがあれば上書き |
< file | fileの内容を入力に渡す |
>> file | fileがなければ作成して出力 fileがあれば既存の内容に追加する |
出力
一般的な出力
普通はモニタに出力される
echo "I love python!"
#---出力結果---#
#I love python! がモニタに出力される
リダイレクトを使った出力
ファイルに書き込んでみる
echo "I love python!" > w.txt
# I love python! が w.txt に書き込まれる
cat w.txt
#---出力結果---#
#I love python!
echo "I love ruby!" >> w.txt
#I love ruby! が w.txt に追加で書き込まれる
cat w.txt
#---出力結果---#
#I love python!
#I love ruby!
入力
一般的な入力
sort
#キーボードから入力する
banana
peach
apple
orange
[ctrl + z]
リダイレクトを使った入力
r.txtの内容をこんな感じとすると
banana
peach
apple
orange
こんな感じに出力される
sort < r.txt
#---出力結果---#
#apple
#banana
#orange
#peach
出力&入力
出力と入力ができたら組み合わせたくなるのが人の性だからやってみるぜ
入力と出力 | コマンド < 入力ファイル名 > 出力ファイル名 |
sort < r.txt > w.txt
cat r.txt
#---出力結果---#
#banana
#peach
#apple
#orange
cat w.txt
#---出力結果---#
#apple
#banana
#orange
#peach
コメント