grep操作中如何匹配制表符(\t)

有这样一个文件

1\t2
1\t3
3\t\t4

假设我们需要匹配第一行,即1\t2
正常肯定是想这样

cat 1 | grep '1\t2'

然而并不行,因为,‘\t’里的\会被认为是转义字符,只能匹配到‘1t2’这样的字符串
那要怎样匹配呢,两个方案

1.手动把制表符打出来

cat 1 | grep  '1 2'

 制表符的打法是ctrl-v + tab

2.使用$符号展开\t

cat 1 | grep  '1'$'\t''2'

$符号在shell中是引用变量的意思,所以$‘\t’就是返回了一个展开的制表符

如果要匹配多个制表符,使用+号匹配即可

cat 1 | grep  '3'$'\t''\+4'

猜你喜欢

转载自xulu010.iteye.com/blog/2412401