$ cat file1 #It contains ID:Name
5:John
4:Michel
$ cat file2 #It contains ID
5
4
3
我想用文件 1 中的名称替换文件 2 中的 ID,需要输出
John
Michel
NO MATCH FOUND
我需要扩展下面的代码以导致找不到匹配的文本。
awk -F":" 'NR==FNR {a[$1]=$2;next} {print a[$1]}' file1 file2
我目前的结果:
John
Michel
<< empty line
谢谢,
最佳答案
您可以为此使用三元运算符:print ($1 in a)?a[$1]:"NO MATCH FOUND"
。也就是说,如果$1
在数组中,打印它;否则,打印文本“NO MATCH FOUND”。
一起:
$ awk -F":" 'NR==FNR {a[$1]=$2;next} {print ($1 in a)?a[$1]:"NO MATCH FOUND"}' f1 f2
John
Michel
NO MATCH FOUND
关于awk - 如果索引不在 awk 数组中则打印默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34631665/