Bio*_*441 -1 grep regular-expression
我正在尝试获取与以下模式匹配的字符串:foo
以bar
.
grep -e "^foo*bar$"
Run Code Online (Sandbox Code Playgroud)
您要匹配的模式分为三个部分:
将所有这些放在一起,您将得到表达式:
grep '^foo.*bar$' file
Run Code Online (Sandbox Code Playgroud)
例如,考虑这个测试文件:
$ cat testfile
foobar
foo bar
foo 123 bar
123 foo bar
foo bar 123
123 foo bar 123
Run Code Online (Sandbox Code Playgroud)
现在运行grep
命令:
$ grep '^foo.*bar$' testfile
foobar
foo bar
foo 123 bar
Run Code Online (Sandbox Code Playgroud)
请注意,您在注释 ( grep -e "^foo" -e "bar$" file
) 中指定的变体表现不同:
$ grep -e "^foo" -e "bar$" testfile
foobar
foo bar
foo 123 bar
123 foo bar
foo bar 123
Run Code Online (Sandbox Code Playgroud)
这是因为这些-e
选项与 OR 操作相结合。除了原始^foo.*bar$
结果,您还将获得结果匹配^foo
以及结果匹配bar$
。