grep匹配具有n个前导空格的行

时间:2013-01-12 04:22:25

标签: grep whitespace

我陷入了困境。我希望匹配所有以精确开头的行,比如8个空格,然后是双引号。

cat file.txt | grep '[[:space:]]\{8\}"'

我在那里做错了什么?它的匹配线也是以超过8个空格开头的。

2 个答案:

答案 0 :(得分:12)

cat file.txt | grep '^[[:space:]]\{8\}"'

如果您不放^,则会匹配您"附近的8个空格。

答案 1 :(得分:4)

您不需要将管道cat导入grep只需执行egrep '^ {8}"' file ^字符与行的开头匹配,以便锚定模式。

$ cat file
        "match"
        no match
   "no match"

$ egrep '^ {8}"' file
        "match"

重复量化器{n}如果扩展正则表达式集的一部分使用egrep,或者使用-E的{​​{1}}选项来避免转义。