8

我被这个卡住了。我想匹配所有以完全开头的行,比如 8 个空格,然后是双引号。

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

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

4

2 回答 2

15

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

如果你不放^,它将匹配你附近的 8 个空格"

于 2013-01-12T04:30:18.963 回答
5

您不需要通过管道将cat字符与行首匹配,这样模式就被锚定了。grepegrep '^ {8}"' file^

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

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

重复量词{n}如果是扩展正则表达式集的一部分,则使用egrep或替代地使用-E选项grep以避免转义。

于 2013-01-12T15:37:40.313 回答