LoginSignup
1
1

More than 3 years have passed since last update.

一瞬で忘れそうなフィルタコマンド備忘録

Last updated at Posted at 2019-12-23

フィルタ系のコマンドは全然使わないからせめてまとめといて思い出しやすくしておこうと思ったので書き記す。。

フィルタ

標準入力を受け取って、適当な処理をして標準出力に出力するコマンドのこと

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番目の文字を置換する
(SETで使える正規表現)
\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 行末にあるスペースを無視する
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1