使用'grep'搜索没有-P的标签

时间:2011-02-12 06:32:58

标签: regex grep

我以前成功使用grep -P,直到我得到一台机器,其中grep不是用Perl正则表达式支持编译的。现在我无法匹配标签:\t字符,

grep -G '\t' matches a literal 't'
grep -E '\t' matches a literal 't'

如何匹配标签?

2 个答案:

答案 0 :(得分:14)

请改为尝试:

grep -G $'\t'

有关详细信息,请参阅bug #23535: Grep Doesn't Support \t as a tab character

答案 1 :(得分:1)

Perl-RegEx理解'[\ t]',所以你可以这样做:

echo -e "\t : words" | grep -P '^[\t]'

basic-regexp和extended-regexp需要这些“空白”(RegEx for“Space”/“Tab”):

echo -e "\t : words" | grep -G '^[[:blank:]]'
echo -e "\t : words" | grep -E '^[[:blank:]]'

也许你可以这样使用它:

echo -e "\t : words" | grep -E '^[[:blank:]]{2,8}'
echo -e "\t : words" | grep -G '^[[:blank:]]\{2,8\}'