gpt4 book ai didi

awk 语句 - 如果没有找到 (grep'ed) 做

转载 作者:行者123 更新时间:2023-12-04 15:35:00 24 4
gpt4 key购买 nike

我的表文件示例看起来像这样

Name1   xxxxx  34
Name1 xxxxx 37
Name2 aaaaa 59
Name2 xxxxx 90
Name4 Name3 12

名称文件看起来像这样
Name1 
Name2
Name3
Name4

我要 awk匹配 Name1/2/3/4从名称文件到表文件 $1 并打印 $3 的总和。 如果未找到名称,则打印 0 - 我该怎么做 if声明于 awk ?

我已经做了什么:
for i in $(cat Name_file)
do
cat table | awk -v NAME="$i" '($1==NAME) {SUM+=$3} END {print NAME"\t"SUM}'
done

给出输出
Name1   71
Name2 149
Name3
Name4 12

几乎完美 - 我想添加 0Name3得到这样的输出
Name1   71
Name2 149
Name3 0
Name4 12

这么多问题是:如何添加 if not found do awk 中的函数?

最佳答案

Y 不需要任何“未找到”行为。你只是没有正确初始化 SUM计数前的变量。使用 BEGIN {SUM = 0}为了那个原因。

如果您需要明确地找到/未找到行为,请执行类似的操作。首先,初始化一些变量 BEGIN {FOUND = 0}然后在模式匹配上进行某种更改:(...) {FOUND = FOUND+1}最后用 if(FOUND!=0) 测试一下.

关于awk 语句 - 如果没有找到 (grep'ed) 做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084127/

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