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


当前回答

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

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

会发现这样的东西:

“账单”..

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

其他回答

一种方法是(这是Bash)

grep -P '\t'

-P将打开Perl正则表达式,因此\t将工作。

正如用户unwind所说,它可能是特定于GNU grep的。另一种方法是在shell、编辑器或终端允许的情况下插入一个制表符。

我从来没有设法使“\t”元字符与grep一起工作。 然而,我发现了两个替代方案:

使用<Ctrl-V> <TAB>(按Ctrl-V然后输入TAB) 使用awk: foo | awk '/\t/'

你可以打字 Grep \t foo 或

grep '\t' foo

在文件foo中搜索制表符。您可能还可以使用其他转义代码,尽管我只测试了\n。虽然这相当耗时,而且不清楚为什么要这样做,但在zsh中,您还可以键入制表符,回到开头,grep并将制表符用引号括起来。

下面是问Ubuntu的答案:

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

使用gawk,将字段分隔符设置为TAB (\t)并检查字段的数量。如果多于1,则有/有制表符

awk -F"\t" 'NF>1' file