2个包含相同字符串的文件

时间:2018-03-11 13:49:00

标签: regex linux text awk grep

我有2个文件......

FILE1:

012:coffee
013:salt
014:apple
015:mushrooms
016:tree

FILE2:

Subject: Three tips to get the most out of Gmail
Subject: The best of Gmail, wherever you are
Subject: Stay more organized with Gmail's inbox
Subject: 012
Subject: 014

如何生成一个新文件,该文件将比较前两个文件并包含:

012:coffee
014:apple

2 个答案:

答案 0 :(得分:0)

使用单个 awk 命令:

awk -F':[[:space:]]*' 'NR==FNR{ if($2 ~ /^[0-9]+$/) a[$2]; next }$1 in a' file2 file1

输出:

012:coffee
014:apple

答案 1 :(得分:-1)

awk -F':' '
NR==FNR {
    sub(/^[^:]+:[[:space:]]*/,"")
    a[$0]
    next
}
$1 in a
' file2 file1

如果file2中的主题文本包含冒号,则需要sub()方法而不是依赖$ 2。