MYV*_*MYV 2 linux bash grep command-line
grep . filename.txt
Run Code Online (Sandbox Code Playgroud)
这只会返回 filename.txt 中的所有内容,因为 . 是代表任何字符的正则表达式。如何使用 grep 搜索句点或其他正则表达式,例如 *?
ter*_*don 10
grep默认情况下使用正grep则表达式,除非您使用-Fswitch,否则任何模式都被假定为正则表达式。
诸如此类的表达式*?不是默认使用的POSIX 正则表达式语言的一部分grep。您可以通过指定不同的正则表达式语言(例如 Perl)来使用此类构造:
$ cat a.txt
aaaaaaaa
aabbccaaaacccccccccb
bbbbbb
$ grep -oP 'a.*?b' a.txt
aab
aaaacccccccccb
Run Code Online (Sandbox Code Playgroud)
要搜索至少包含一个句点的行,请使用
$ grep '\.*' foo.txt
Run Code Online (Sandbox Code Playgroud)
对于仅包含句点的行,请使用
$ grep '^\.*$' foo.txt
Run Code Online (Sandbox Code Playgroud)
对于更复杂的正则表达式,请使用-F:
$ grep -F '[a-z]*.*[AHG].*' foo.txt
[a-z]*.*[AHG].*
Run Code Online (Sandbox Code Playgroud)
grep -F不会扩展正则表达式。男人 grep:
-F, --fixed-strings 将 PATTERN 解释为固定字符串列表,以换行符分隔,其中任何一个都将被匹配。
请注意F,不要f!
| 归档时间: |
|
| 查看次数: |
748 次 |
| 最近记录: |