6

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

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 中执行这些操作?

谢谢

4

3 回答 3

9

尝试这样做,OR操作员是管道: |:

grep -E 'Fds|UTR' file

或者

grep -E '(Fds|UTR)' file

或者

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

或者

grep 'Fds\|UTR' file
于 2013-08-26T20:52:47.820 回答
3

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

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

grep 'Fds\|UTR' filename

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

或者,可以使用egrep.

egrep 'Fds|UTR' filename
于 2013-08-26T21:01:03.127 回答
1

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

sed '/Fds\|UTR/!d' file
于 2013-08-26T21:12:01.703 回答