IT pass HikiWiki - [itbase2023]リダイレクション・パイプ Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

== リダイレクション

リダイレクションとは入力元や出力先を変更できる機能です.
通常,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 のみが表示されるようにコマンドを打ちなさい.