フィルタ系のコマンドは全然使わないからせめてまとめといて思い出しやすくしておこうと思ったので書き記す。。
#フィルタ
標準入力を受け取って、適当な処理をして標準出力に出力するコマンドのこと
#wc
オプション無しで引数にファイルを指定すると、行数
単語数
バイト数
を表示してくれる
bash:(オプション)
- c バイト数を数えてくれる
- m 文字数を数えてくれる
- l 行数を数えてくれる
- w 文字数を数えてくれる
#sort
sortしてくれる。オプション無しだとASCIIコードに則ってアルファベット順でsortしてくれる。正確には文字コード順に並び替えるだけなので、下の例みたいな順番になる。
A
Z
a
b
-n 数値順にソート
-r 逆順にソート
#uniq
重複した行を除いて表示してくれるのが基本動作。
-c 同じ内容の行が出現する回数をカウントする
#cut
入力の一部を切り出せる
cut -d 区切り文字 -f フィールド番号 ファイル名
-d 区切り文字の指定(ない場合はタブで区切られる)
-b 行の指定したバイト目だけを出力する
-c 行の指定した文字番目だけ表示する
-f 表示するフィールド番号を指定する
-s 区切り文字を含まない行を出力しない
cutコマンドでは-b
-c
-f
のどれかひとつだけを選んで必ず使わなければならない。
#tr
文字を置換してくれる。ファイルを引数に指定できないので入力リダイレクトで扱うか、適当なコマンドから出力をパイプしてくることで使える。
tr オプション SET1 SET2
SET1
が置換される文字列でSET2
が置換後の文字列。
-d 置換しないで置換対象をdeleteする
-s SET1 と SET2 の対応するn番目の文字を置換する
\b バックスペース
\n 改行
\t 水平タブ
a-d アルファベット順でaからdまでの文字
:cntrl: すべての制御文字
詳しくはhelpを読もう、日本語だったよ
#tail
標準入力から末尾n行を出力する。オプションを指定しなければ10行出力される。
-n 引数で、表示する末尾から何行出力するかを指定
-f ファイルを監視し、内容が追記されたら表示する
-v ファイル名を一番上に表示してくれる
#diff
2ファイルの差分を出力してくれる。出力形式にはデフォルトの形式の他にユニファイド形式
というものがある。読み方に癖があるが、ここで解説はしない。gitで使われているのもユニファイド形式なので使うときはユニファイド形式で出力するのがいいだろう。ちなみにディレクトリも比較できる。
-q 2つのファイルの内容が異なるかどうかのみ出力する
-s 2つのファイルの内容が同じかどうかのみ出力する
-u ユニファイド形式で出力する
-a すべのファイルをテキストとして扱う
-w すべてのスペースを無視する
-b すべてのスペースによる違いを無視する
-Z 行末にあるスペースを無視する