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


当前回答

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

grep -P '\t' *

其他回答

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

grep -P '\t' *

我用ksh

grep "[^I]" testfile

在表达式中插入制表符的另一种方法是使用Bash中不太为人所知的$'\t'引号:

grep $'foo\tbar'        # matches eg. 'foo<tab>bar'

(注意,如果你匹配固定字符串,你可以使用-F模式。)

有时使用变量可以使符号更易于阅读和管理:

tab=$'\t'               # `tab=$(printf '\t')` in POSIX
id='[[:digit:]]\+'
name='[[:alpha:]_][[:alnum:]_-]*'
grep "$name$tab$id"     # matches eg. `bob2<tab>323`

使用echo为你插入标签grep "$(echo -e \\t)"

你可能想使用grep "$(echo -e '\t')"

唯一的要求是echo能够解释反斜杠转义。