リダイレクトとパイプの活用法

リダイレクトとパイプの活用法

入力と出力の考え方

Linuxで実行されるコマンドには3つの出入り口がある

0……標準入力
1……標準出力
2……標準エラー出力

「リダイレクト」で入力先・出力先を切り替える

標準入力、標準出力、標準エラー出力はキーボードやディスプレイ以外にファイルやプリンタなどに切り替えることが出来る。
これを【リダイレクト】という。
リダイレクトには以下の記号を使う。

>…………標準出力の出力先を変更する(データは上書きされる)
>>………標準出力の出力先を変更する(データは追記される)
<…………標準入力の入力先を変更する
2>………標準エラー出力の出力先を変更する(データは上書きされる)
2>>……標準エラー出力の出力先を変更する(データは追記される)
  • リダイレクトの便利な使い方

    処理結果を画面に表示(出力)するのではなくてファイルに残したいとき、リダイレクトで標準出力先を変更する。

    ▼コマンドの実行結果をファイルに保存する「>」
    $ cal > month.txt
    ▼ファイルにデータを追加して書き込む「>>」
    $ date >> month.txt
    ▼エラーメッセージを残す「2>」
    $ cat coffee 2> error
    存在しないファイル「coffee」を「cat」で表示しようとするとエラーになるが、リダイレクト「2>」を使って、このエラーメッセージを「error」ファイルに書き込む
    ▼リダイレクトを組み合わせる
    $ cat ab.txt ac.txt coffee > abcd 2>> error
    「ab.txt」「ac.txt」「coffee(存在しない)」の内容を表示した結果を「abcd」ファイルに書き込む。
    エラーメッセージは「error」ファイルに追記する

パイプ機能を使いこなす

【パイプ (|)】機能を使うと複数のコマンドをつなげて実行することが出来る。
最初のコマンドを実行すると、その実行結果を次のコマンドの標準入力に渡して、次のコマンドが実行される。

  • パイプで2つのコマンドをつなげて実行する
    ▼コマンド履歴を最初の10行だけ表示させる
    $ history | head
  • ディスプレイ(標準出力)とファイルに同時出力する

    【tee】コマンドを使うと、実行結果を別のコマンドに送るとともに、結果をファイルに出力することも出来る。
    例えば「data.txt」ファイルから「t」を含むデータを検索し、結果を「t.txt」に保存後に先頭3行分だけを表示させることも行える。

    ▼パイプと「tee」の使い方
    $ grep t data.txt | tee t.txt | head -3
    「grep t data.txt」でファイルから「t」を含む行のデータを表示したら、「tee.txt」で「t.txt」に書き込み、「head -3」で先頭3行分を表示させる。

トラブルが発生した場合はすぐにお電話(050-5532-9970)ください。
迅速なトラブル解決だけでなく、パソコン購入アドバイスもしております。

パソコンレスキュー
三鷹市周辺のパソコン修理・トラブル解決ならお任せください!

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA