【问题标题】:2 Files to compare with columns2 与列进行比较的文件
【发布时间】:2021-12-13 12:28:52
【问题描述】:

我有 2 个文件,需要一个输出

file 1 column 1 == file 2 column 1 > output
file 1 column 1 =! file 2 column 1 [Remove]

文件 1 包含 2 列

仅文件 2 1

因此,如果文件 1 的第一列与文件 2 相同,则需要输出文件 1 的 2 列。

示例文件 1=

Cheese:12
Bloom:13
Kitkat:3478

文件 2=

Cheese
Kitkat

输出=

Cheese:12
Kitkat:3478

【问题讨论】:

标签: sorting awk grep


【解决方案1】:

我可能误解了你的问题(格式需要改进),但也许这就是你所追求的:

文件1

Cheese:12
Bloom:13
Kitkat:3478

文件2

Cheese
Kitkat

根据file2获取file1中的值:

awk -F":" 'NR==FNR{a[$1]=$1; next}{if($1 in a) print}' file2 file1
Cheese:12
Kitkat:3478

【讨论】:

    【解决方案2】:

    把它想象成从file 2中选择file 1中的行,然后用grep

    grep -f file2 file1
    

    输出:

    Cheese:12
    Kitkat:3478
    

    【讨论】:

    • 它需要在 windows 上工作,而 awk 没有这样做,如果你愿意,我确实使用 Cygwin
    • @SoSander:你在 Cygwin 中有 grep。我的代码中有错误,-v 选项不应该存在。更新了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    相关资源
    最近更新 更多