使用 fgrep 查找多个单词(korn shell)

问题描述 投票:0回答:2

假设我有一个包含多行的文本文件,但我只想 fgrep 列出同一行中包含某些单词的那些行。 因此,例如,如果我正在查找单词“cat”和“dog”,我将如何向 fgrep 提供该信息?

我理解一个论点就是:

    fgrep cat text.txt

但我想在同一行中查找包含“dog”和“cat”的行。 我该怎么做呢?

regex shell ksh grep
2个回答
2
投票

这会起作用:

fgrep cat text.txt | fgrep dog

您还可以将一个正则表达式与

grep -E
一起使用,例如:

grep -E "cat.*?dog|dog.*?cat" text.txt

但是,这样的简单任务通常需要花费太多的脑力,所以我选择第一种方法。


0
投票

您可以通过多次传递

grep
参数来为
-e
和朋友指定多个模式。例如:

fgrep -e cat -e dog text.txt

或者,您可以传递单个参数(带或不带

-e
),其中模式由换行符分隔。例如,如果您愿意原谅命令中尴尬的换行符:

fgrep 'cat
dog' text.txt

作为参考,这里是 grep

POSIX 联机帮助页。

万一您使用的是具有非常旧版本的

fgrep
的复古系统(例如 1980 年代),那么它可能只支持第二种方式(换行符分隔模式)。

© www.soinside.com 2019 - 2024. All rights reserved.