パイプについて

パイプ | (バーチカルバー) は bash またはその他のシェルの使用時において,最も使用頻度が高いコマンドのひとつといえる.パイプは自身の直前に入力されたコマンドと自身の直後に入力されたコマンドを繋ぐ役割を果たす.パイプを用いると,ディレクトリに存在するファイル数を数えたい場合,コマンド ls でファイルを表示させて,その結果をパイプによって文字カウントのコマンドである wc に渡し,その数を数えるといったような複数のコマンドの実行が必要な操作を1行で入力することができる.

1|$ls
perl software tips work add_up.txt
2|$ls |wc -l
5

さらに,パイプを便利に用いるためのコマンドに xargs がある.コマンド xargs はパイプ以前のコマンドの実行結果を xargs の次に入力したコマンドの引数として設定することができるコマンドである.あるファイルを検索しその中身を確認したい場合,コマンド find ファイルを検索した後にパイプを介して head を使った場合は,単に find の検索結果が head にて表示されるだけであるが,xargs head を入力すれば,以下のように,find によって得られた検索結果のファイルの内容を表示させることができる.

1|$find ./ -name "dssp.pl" |xargs head -5
#!/usr/bin/perl
use strict;
use warnings;
 
my @memory=<FILE>

以上のコマンドでは、カレントディレクトリ以下からファイル名が dssp.pl であるファイルを検索し,見つかったファイルの中身を head にて最初から5行目までを表示させる.コマンド xargs を用いると,パイプの直前のコマンドの結果を引数としてパイプの直後のコマンドを実行することができる.

このエントリーをはてなブックマークに追加

Site search

ページのトップへ戻る