如何在Unix平台上的文件中grep标签(\t) ?


当前回答

在其他答案中给出的$'\t'符号是特定于shell的——它似乎在bash和zsh中工作,但不是通用的。

注意:下面是针对fish shell的,在bash中不起作用:

在fish shell中,可以使用不带引号的\t,例如:

grep \t foo.txt

或者可以使用十六进制或unicode符号,例如:

grep \X09 foo.txt
grep \U0009 foo.txt

(这些符号对于更深奥的字符很有用)

因为这些值必须是不加引号的,所以可以将加引号的值和不加引号的值进行拼接:

grep "foo"\t"bar"

其他回答

grep "$(printf '\t')"在Mac OS X上为我工作

如果使用GNU grep,你可以使用perl风格的regexp:

grep -P '\t' *

下面是问Ubuntu的答案:

告诉grep使用由Perl定义的正则表达式(Perl拥有 \t as tab): grep -P "\t" <文件名称> . grep "\t" <文件名称> . grep "\t 使用文字制表符: grep "^V<tab>" <文件名> . grep "^V<tab> 使用printf打印制表符: Grep "$(printf '\t')"<文件名>

多次查找空格[[:space:]]*

grep[:太空 :]]*'.''.'

会发现这样的东西:

“账单”..

这些是单引号('),而不是双引号(")。这就是在grep中进行连接的方法。= -)

这对于AIX很有效。我正在搜索包含连接<\t>ACTIVE的行

voradmin cluster status | grep  JOINED$'\t'ACTIVE

 vorudb201   1       MEMBER(g) JOINED        ACTIVE
*vorucaf01   2       SECONDARY JOINED        ACTIVE