タブ文字で grep する

test(タブ文字) みたいなのを grep したい場合。

ターミナル
$ grep "test(タブ文字)" /path/to/file

のように入力したいが、普通に入力するとシェルがタブ文字を奪う。 bash, zsh の場合は ctrl-v を入力してからタブを打つと入力される。

ただし、これはメモなどからコピペするときに苦労する。

[:space:] の利用

空白文字もマッチしてしまうけど、それでもよければ [[:space:]] でタブ文字もマッチする。 これならメモなどからコピペできる。

$ grep "test[[:space:]]" /path/to/file
$'\t'
$ grep "test$'\t'" /path/to/file

はうまくマッチしなかった。

$ grep test$'\t' /path/to/file

であればマッチする。

どんなふうに展開されるか追っていけば使えるかもしれないが、よくわかっていない。