sakawork @ ウィキ

メニュー

▼プログラミング言語関連
▼プロトコル関連
▼Web関連



ページ編集支援





リンク





UNIX > パイプ・リダイレクション


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。



■パイプ( "|" ) と リダイレクション( "<" ">" )

パイプ( "|" )とリダイレクション( "<" ">" )は
標準入力・標準出力・標準エラーを変更するために使う

標準入力/標準出力/標準エラー

入出力 装置
標準入力 キーボード
標準出力 ディスプレイ
標準エラー ディスプレイ

コマンド

コマンド 内容
(コマンド1) | (コマンド2) [パイプ]
コマンド1の出力をコマンド2の入力にする
(コマンド) > (ファイル名) [標準出力の変更]
コマンドの標準出力を(ファイル名)に出力する
(コマンド) >> (ファイル名) [標準出力の変更(追記)]
コマンドの標準出力を(ファイル名)に出力する
(コマンド) 2> (ファイル名) [標準エラーの変更]
コマンドの標準エラーを(ファイル名)に出力する
(コマンド) < (ファイル名) [標準入力の変更]
(ファイル名)の中身を標準入力の変わりにコマンドに渡す
(コマンド) 2>&1 標準エラーと標準出力をひとまとめにする

★パイプ "|"★  lsコマンド、headコマンド、tailコマンドを用いた例

コマンド 内容
ls カレントディレクトリにあるファイル名を表示
head -n (ファイル名) (ファイル名)の内容を先頭からn行表示
tail -n (ファイル名) (ファイル名)の内容を末尾からn行目以降が表示
     $ ls -l
     total 12                      ←ここから
     -rw-r--r-- 1 hoge hoge 4 xxxx-xx-xx xx:xx aaa.txt
     -rw-r--r-- 1 hoge hoge 4 xxxx-xx-xx xx:xx bbb.txt
     -rw-r--r-- 1 hoge hoge 4 xxxx-xx-xx xx:xx ccc.txt  ←ここまでがls -lコマンドの出力
     $ ls -l | head -2
     total 12
     -rw-r--r-- 1 hoge hoge 4 xxxx-xx-xx xx:xx aaa.txt  ←先頭から2行目まで出力される
     $ ls -l | tail -3
     -rw-r--r-- 1 hoge hoge 4 xxxx-xx-xx xx:xx aaa.txt  ←末尾から3行目以降が出力される
     -rw-r--r-- 1 hoge hoge 4 xxxx-xx-xx xx:xx bbb.txt
     -rw-r--r-- 1 hoge hoge 4 xxxx-xx-xx xx:xx ccc.txt

★リダイレクション">" ">>" "2>"★  echoコマンド、catコマンドを用いた例

コマンド 内容
echo (内容) (内容)を標準出力に出力
cat (ファイル名) (ファイル名)の内容を標準出力に出力

  ■echo (内容)           :(内容)を標準出力(ディスプレイ)に出力)
     $ echo aaa
     aaa           ←ディスプレイにaaaが出力される

  ■echo (内容) > (ファイル名)   :(内容)を(ファイル名)に出力 ※ディスプレイには出力しない
     $ echo aaa > ttt.txt  ←ttt.txtにaaaが書き込まれ、ディスプレイにaaaが出ない
     $ cat ttt.txt      ←ttt.txtの内容を見るとaaaが書き込まれている
     aaa

  ■echo (内容) >> (ファイル名)   :(内容)を(ファイル名)に追記 ※ディスプレイには出力しない
     $ cat ttt.txt
     aaa          ←aaaと書き込まれているttt.txtファイル
     $ echo bbb >> ttt.txt
     $ cat ttt.txt
     aaa          ←もともと書き込まれていたaaaのあとに
     bbb          ←bbbが追記される

  ■cat (存在しないファイル名)         :エラーが標準エラー(ディスプレイ)に出力
     $ cat nnn.txt
     cat: nnn.txt: No such file or directory  ←エラーがディスプレイに出力される

  ■cat (存在しないファイル名) 2> (ファイル名) :エラーが(ファイル名)に出力 ※ディスプレイには出力しない
     $ cat nnn.txt 2> eee.txt      ←エラーが画面に出力されない
     $ cat eee.txt
     cat: nnn.txt: No such file or directory  ←eee.txtにエラーが書き込まれる

★リダイレクション"<"★  例



いろいろな組み合わせ例

  tail -100 xxxx.log | head -50 > xxxx.out
     ↑xxxx.logの後ろから100行目から以降の50行をxxxx.outに切り出す
  grep ^000 xxxx.log | sed "s/aaa/bbb/g"
     ↑xxxx.logの中から000で始まる行を探しその行の"aaa"を"bbb"に書き換えて画面表示
  ./a.out |tee xxxx.log
     ↑a.outを実行し、ディスプレイに表示される標準出力をxxxx.logにも書き込む
  ls -1 | wc -l
     ↑カレントディレクトリのファイル数を表示させる
       (ls -1でカレントディレクトリのファイルを1行に1個表示させた結果を
         wc -l コマンドに渡す。wc -lは入力されたファイル(=今回はls -1の内容)の行数を表示)


■``

ついでに `` を紹介しておきます
シェルスクリプトでよく使います

   $./a.out
   Hello,World
  ./a.outの結果をls -lコマンドに渡す
   $ ls -l `./a.out`
   ls: Hello,World: No such file or directory
   ./a.outの結果を変数に渡す
   $ arg=`./a.out`
   $ echo $arg
   Hello,World



更新履歴

取得中です。


タグクラウド


アクセス

本日のアクセス
-
昨日のアクセス
-