【问题标题】:grep: print both matchesgrep:打印两个匹配项
【发布时间】:2024-01-11 08:52:02
【问题描述】:

以下命令仅返回来自 file2 的匹配项。

grep -f file1 file2

如何在 file2 的第二个匹配项之后从第一个文件 (file1) 打印匹配行?

【问题讨论】:

    标签: awk grep


    【解决方案1】:
    awk 'NR==FNR{res[$0]; next}
    {
        found = 0
        for (re in res) {
            if ($0 ~ re) {
                print "found:", re
                found = 1
            }
        }
    }
    found
    ' file1 file2
    

    【讨论】:

    • 非常感谢。您能告诉我如何在一行中打印匹配项(制表符分隔)吗?
    • @Ed Morton 我也对部分匹配行感兴趣,但您的代码似乎只提供完整匹配,对吗?出于这个原因,我使用了 grep。
    • @MaryamSani 不,你错了。试一试,并通过示例告诉我们任何具体问题。