gpt4 book ai didi

awk - 如果索引不在 awk 数组中则打印默认值

转载 作者:行者123 更新时间:2023-12-04 17:53:29 25 4
gpt4 key购买 nike

$ 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com