【问题标题】:Grepping the multiple words from file从文件中提取多个单词
【发布时间】:2013-01-21 14:00:56
【问题描述】:

我有一个文件(大约 1000 字)。

1.txt:

XYZ

ABC

DEF

GHI

...

我还有另一个文件 2.txt 包含一些数据,现在我想在文件 2.txt 中的 1.txt 中 grep 这些单词。 我使用了下面的逻辑,但是报错了。

name=$(cat 1.txt |tr '\n' '|')

grep -E -w ${name} 2.txt

【问题讨论】:

    标签: file bash shell grep


    【解决方案1】:

    Grep 可以使用-f 选项从文件中读取模式:

    egrep -w -f 1.txt 2.txt 
    

    【讨论】:

    【解决方案2】:

    你需要引号并使用 egrep

    egrep -w "$(cat 1.txt |tr '\n'  '|')" 2.txt
    

    但是 -f 的答案更好

    【讨论】:

    • egrep 是调用grep -E 的另一种方式,他已经在这样做了。引用可能需要也可能不需要,取决于 1.txt 的内容,但当然是个好主意。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    相关资源
    最近更新 更多