sol*_*ish 24 command-line regex grep
我有一个名为 example 的文件
$ cat example
kali.pdf
linux.pdf
ubuntu.pdf
example.pdf.
this.pdf
grep .pdf
Run Code Online (Sandbox Code Playgroud)
当我grep用来获取之前有空格的行时.pdf,我似乎无法获取它。
grep *.pdf example
Run Code Online (Sandbox Code Playgroud)
什么都不返回,(我想说,“grep,在之前匹配零个或多个空格.pdf”,但没有结果)
如果我使用:
grep i*.pdf example
kali.pdf
linux.pdf
ubuntu.pdf
example.pdf.
this.pdf
grep .pdf
Run Code Online (Sandbox Code Playgroud)
所有行都返回,因为我在说“grep,匹配我i一次或零次,好的。”
最后:
grep " *.pdf" example
Run Code Online (Sandbox Code Playgroud)
没有结果返回
对于这个样本,我想看看
grep .pdf
Run Code Online (Sandbox Code Playgroud)
作为输出
我的想法有什么问题?
Zan*_*nna 38
确保你引用你的表达。
$ grep ' \.pdf' example
grep .pdf
Run Code Online (Sandbox Code Playgroud)
或者如果可能有多个空格(我们不能使用,*因为这将匹配前面没有空格的情况)
grep ' \+\.pdf' example
Run Code Online (Sandbox Code Playgroud)
+表示“一个或多个前面的字符”。在 BRE 中,您需要将其转义\以获取此特殊功能,但您可以改用 ERE 来避免这种情况
grep -E ' +\.pdf' example
Run Code Online (Sandbox Code Playgroud)
你也可以用\singrep来表示一个空格
grep '\s\+\.pdf' example
Run Code Online (Sandbox Code Playgroud)
我们应该转义文字,.因为在正则表达式中.意味着任何字符,除非它在字符类中。
| 归档时间: |
|
| 查看次数: |
115061 次 |
| 最近记录: |