如何使用 grep 包含空格字符?

如何使用 grep 包含空格字符?

我有一个名为 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 

您还可以使用\singrep来表示空格

grep '\s\+\.pdf' example

我们应该转义文字,.因为在正则表达式中.它表示任何字符,除非它属于字符类。

相关内容