linuxのパイプラインとフィルタ、テキスト処理コマンド「wc、sort、uniq」について

プログラミング
スポンサーリンク

パイプライン

パイプラインとは、コマンドの標準出力を別のコマンドの標準入力につないでコマンドを連携させる機能です。

パイプラインは「|」(パイプ)という記号を使います。※Macならs¥Shift+¥です。

コマンド1 | コマンド2

でOKです。

1つ目のコマンドの標準出力が2つ目のコマンドの標準入力に送り込まれます。

標準エラー出力もまとめてパイプラインに送りたいときは、2>&1を使えばOKです。

標準エラー出力を標準出力へリダイレクトするのです。

フィルタ

標準入力を入力として受け取り、標準出力に出力するコマンドを「フィルタ」と呼びます。

代表的なフィルタコマンド

cat:入力をそのまま出力する。

head:先頭の部分を表示する。

tail:末尾の部分を表示する。

grep:指定した検索パターンに一致する行だけを表示する。

sort:順番に並べ替える。

uniq:重複した行を取り除く

tac:逆順に出力する。

wc:行数やバイト数を出力する。

行数・単語数・バイト数を数える

wcコマンドで、入力ファイルの行数・単語数・バイト数を数えることができます。

wc ファイル名

でOKです。

-lオプションで行数のみ表示します。

-wオプションで単語数のみ表示します。

-cオプションでバイト数のみ表示します。

-u オプションで重複行を取り除くことができます。

行を並べ替える

sortコマンドは、行単位でテキストの並べ替えができます。

デフォルトではアルファベット順です。

sort ファイル名

でOKです。

-kオプションで並べ替えをする列を指定できます。

-nオプションで数値順に並べ替えすることができます。

-rオプションで逆順に並べ替えできます。

重複行を取り除く

uniqコマンドで、連続した同じ内容の行を省くことができます。

uniq ファイル名

でOKです。

sortコマンドと組み合わせることで、離れた同じ内容の行も省くことができます。

sort ファイル名 | uniq

でOKです。

-cオプションで重複行を数えることができます。

コメント

タイトルとURLをコピーしました