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

mar*_*ark 7 whitespace grep

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

cat file.txt | grep '[[:space:]]\{8\}"'
Run Code Online (Sandbox Code Playgroud)

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

Suk*_*uku 13

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

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


Chr*_*our 5

你不需要管catgrep只是做egrep '^ {8}"' file^字符行的开始,因此模式被锚定匹配。

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

$ egrep '^ {8}"' file
        "match"
Run Code Online (Sandbox Code Playgroud)

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