awk - AWK:将两个文件中的字段与多个字段进行比较
问题描述
有人可以帮助我吗?
文件1:
Red|Circle|123|apple|orange|grapes
Blue|Square|345|apple|banana|blueberry
Red|Triangle|143|strawberry|orange|grapes
文件2:
123|Square|banana|blueberry
123|Triangle|strawberry|grapes
347|Circle|orange|strawberry
输出:
Red|Circle|123|apple|orange|grapes|Square|banana|blueberry
Red|Circle|123|apple|orange|grapes|Triangle|strawberry|grapes
解决方案
下面awk
应该让你开始:
awk 'BEGIN {
FS = "|"
}
NR == FNR {
# while reading the 1st file
# store its records in the array f
f[$3] = $0
next
}
$1 in f {
# when match is found
# print all values
print f[$1], $0> }' file1 file2
Red|Circle|123|apple|orange|grapes 123|Square|banana|blueberry
Red|Circle|123|apple|orange|grapes 123|Triangle|strawberry|grapes
推荐阅读
- swift - Firebase 身份验证界面
- javascript - 影子dom内的输入数据列表不起作用
- angular - 单击按钮播放声音(角度)
- python - Spacy 注释工具实体索引
- scheme - Racket 类中的动态函数调用结合应用
- r - 如何为某些 x 值的多元回归添加回归图?
- python - Astropy 抱怨 Numpy 版本
- css - How to put the icons on the left side of a nav bar?
- python - 如何使用 python 和 pyrebase 从 firebase 存储中获取文件的大小
- javascript - 未捕获的类型错误:$.ajax 不是函数 | 在使用最新的完整 jQuery 版本时