如何在grep中仅保留包含特定字符串的行?

时间:2013-08-26 20:46:31

标签: text grep

我有文字文件。我需要打印这些包含特定字符串的行,例如: 文本文件:

Car, bold 231212 /Fds
House pen 232123 /RYF
game kon 342442 /ksgj
mess three 42424 /UTR

我需要保持行包含Fds或UTR

输出:

Car, bold 231212 /Fds
mess three 42424 /UTR

如何在grep中执行这些操作?

谢谢

3 个答案:

答案 0 :(得分:8)

尝试这样做,OR运算符是管道|

grep -E 'Fds|UTR' file

grep -E '(Fds|UTR)' file

grep -P '(?:Fds|UTR)' file

grep 'Fds\|UTR' file

答案 1 :(得分:3)

幸运的是,这可以通过一个命令完成。 grep可用于直接搜索文件或通过管道传输的任何数据。在这种情况下,我们只是用它来搜索单个文件。

grep可以使用正则表达式,它将用于在搜索时允许“或”行为(由“|”或管道符号表示)。您正在寻找的命令应该是

grep 'Fds\|UTR' filename

反斜杠很重要。没有它,grep会搜索字符串“Fds | UTR”,这在搜索文本中显然不存在。

或者,可以使用egrep

egrep 'Fds|UTR' filename

答案 2 :(得分:1)

我也会用grep来做。斯毕尼克给出了答案。作为替代方案,sed解决方案:

sed '/Fds\|UTR/!d' file