[itbase2024]リダイレクション・パイプ
リダイレクション
リダイレクションとは入力元や出力先を変更できる機能です. 通常,cat, echo, date などのコマンドを入力すると, 結果が表示されます. これらの結果をファイルに書き込みたい場合はリダイレクション機能を使います.
$ echo "hello world" <-- 「hello world」の文字を画面に表示する. hello world <-- 正しく「hello world」の文字が画面に表示された. $ echo "hello world" > hello.txt <-- 「>」は echo "hello world" の結果を hello.txt に書き込む. $ cat hello.txt <-- hello.txt の中身を表示させる hello world $ cat hello.txt > world.txt <-- 次にhello.txtの中身をworld.txtにリダイレクト $ cat world.txt <-- world.txt の中身を表示させる hello world $ date >> world.txt <-- 「>>」を使うと上書きされずに下の行に追加される. $ cat hello.txt >> world.txt $ cat world.txt <-- world.txt の中身を表示させる hello world Mon Apr 18 13:52:46 JST 2016 hello world
パイプ
上記のリダイレクションでは表示される結果をファイルに書き出しました. これに対し, パイプ「|」を使用すると結果をコマンドに送ることができます. これを wc コマンドを使って試してみましょう.
$ echo "hello world" > hello.txt <-- echo "hello world" の結果を hello.txt に書き込む. $ wc -c hello.txt <-- wc -c はファイル中のバイト数を数える 12 hello.txt
wc -c は下のように使うことで,
wc -c <ファイル名>
ファイル中のバイト数を数えることができます.
上の方法では, まず, "hello world" と書かれたファイルを用意してからバイト数を数えました. そのファイルを作る操作と, バイト数を数える操作を, パイプ (|) を使って連結することができます.
$ echo "hello world" | wc -c 12
練習 1
2018 年 1 月, 2 月, … 6 月の各月のカレンダーを納めたファイルを作成しなさい. ファイル名は下のようにすること
1 月 : Jan2018.txt 2 月 : Feb2018.txt 3 月 : Mar2018.txt 4 月 : Apr2018.txt 5 月 : May2018.txt 6 月 : Jun2018.txt
ファイルができていることをコマンドを使って確認しなさい.
練習 2
練習 1 が終わった後で, ls -l コマンドを実行すると, 1 月から 6 月までのファイルのすべてが表示されるでしょう. このとき, ワイルドカードを用いて, ls -l の結果として Mar2018.txt と Apr2018.txt のみが表示されるようにコマンドを打ちなさい.
Keyword(s):
References:[[itbase2024]惑星学実験実習の基礎II]