我有一个名为 example 的文件
$ cat example
kali.pdf
linux.pdf
ubuntu.pdf
example.pdf.
this.pdf
grep .pdf
当我使用grep
它来获取之前有空格的行时.pdf
,我似乎无法得到它。
grep *.pdf example
不返回任何内容,(我想说“grep,匹配零个或多个空格之前.pdf
”,但没有结果)
如果我使用:
grep i*.pdf example
kali.pdf
linux.pdf
ubuntu.pdf
example.pdf.
this.pdf
grep .pdf
所有行都返回,因为我说“grep,匹配我i
一次或零次,好的。”
最后:
grep " *.pdf" example
没有返回结果
对于这个示例,我想看看
grep .pdf
作为输出
我的想法有什么问题?
答案1
确保引用你的表达。
$ grep ' \.pdf' example
grep .pdf
或者如果可能有多个空格(我们不能使用,*
因为这将匹配前面没有空格的情况)
grep ' \+\.pdf' example
+
表示“一个或多个前面的字符”。在 BRE 中,您需要使用转义符来\
获得此特殊功能,但您可以使用 ERE 来避免这种情况
grep -E ' +\.pdf' example
您还可以使用\s
ingrep
来表示空格
grep '\s\+\.pdf' example
我们应该转义文字,.
因为在正则表达式中.
它表示任何字符,除非它属于字符类。