【发布时间】:2020-11-19 20:03:15
【问题描述】:
我想在 keyword_file 中搜索 search_file 的每一行并打印一个 output_file 用提取的正确字符串替换该行的不正确字符串来自 keyword_file。此外,如果缺少第 3 列的条目很少,则应警告用户,这些条目在 keyword_file 中不存在并且在 search_file 中具有(例如,“ggg coms”在文件)
注意,这里 keyword_file 可能包含与 search_file 不同的行数。例如: 搜索文件
aaa coms 123
bbb coms 234
ccc
ddd coms 456
eez coms 789
fkk coms 987
ggg coms
hhh coms 989
....
keyword_file
aaa coms 789
bbb coms 234
ccc coms 878
ddd coms 456
ttt coms 654
eee coms 789
输出
aaa coms 789
bbb coms 234
ccc coms 878
ddd coms 456
eez coms 789
fkk coms 987
hhh coms 989
....
我尝试了以下 awk 命令,但它无法在 输出 中保留 search_file 的第 1 列条目。
awk 'FNR==NR{a[$1]=$0} FNR!=NR&&a[$1]{print $1,$2,$3}' search_file keyword_file
非常感谢您的帮助:)
【问题讨论】: