regex - 比较两个文件而不进行排序 AWK

标签 regex awk

我有两个这样的文件:

Animal Food
cat    fish
Dog    meet
cow    grass

第二个文件:

Animal Food Price
cat    fish  45
Dog    meet  47
Got    grass 74

我只想根据第一列和第二列比较这两个文件,如下所示:

Animal Food Price
cat    fish  45
Dog    meet  47

通常,我会使用 JOIN 函数执行此操作,但在这种情况下,无法进行排序。我需要与文件 1 完全相同的顺序的结果 然后我像这样尝试使用 AWK:

awk 'NR==FNR {$1 = $2; next} {print}' file1 file2

但它会产生一些重复的结果和不同的顺序。

最佳答案

您可以使用:

awk '{k = $1 FS $2} NR == FNR {map[k]=$3; next} k in map{print $0, map[k]}' f2 f1
Animal Food Price
cat    fish 45
Dog    meet 47

关于regex - 比较两个文件而不进行排序 AWK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62944490/

相关文章:

Java String Split 从大字符串中获取单个数据

javascript - Javascript 中的实时摩尔斯电码转换器

ios - 如何排除 "+"在 NSRegularExpression 中被视为特殊字符?

python - 用于解析完整 Iptables 日志 Python 的正则表达式代码

bash - 如果列值为空,则 awk 打印空

regex - .awk 正则表达式中的转义字符

扫描仪中的 Java 正则表达式

linux - awk 的默认字段分隔符

bash - 基本的shell编程

linux - 如何在 bash 中使用 awk 编写条件来转置文件?