gpt4 book ai didi

awk 计算指定字符出现次数,未找到则返回 0

转载 作者:行者123 更新时间:2023-12-05 08:45:36 25 4
gpt4 key购买 nike

我有一个文本文件:

and

b

,

.

apple

banana

我想计算一些包含分号的特定字符的出现次数,在这种情况下没有找到分号

异常(exception)的输出是:分号 0

这是我的代码:

sed -e 's/;/semi_colon/g' data.txt|awk '{count[$1]++} if(count[$1]==""){count[$1]=0} END{print"semi_colon",count["semi_colon"]}'

得到如下输出:

semi_colon

想知道如何实现预期的输出:

semi_colon 0

如果有人能提供帮助,干杯!

最佳答案

使用您展示的示例,请尝试遵循 awk 代码。

awk '
{
countA+=gsub(/a/,"&")
countSemiColon+=gsub(/;/,"&")
}
END{
print "a "countA+0 ORS "semi_colon " countSemiColon+0
}
' Input_file

解释: 简单的解释是,在 awk 程序的主 block 中使用 awkgsub 函数/方法将 a 全局替换为自身(只是为了计算它的出现次数)并将其替换次数放入 countA awk 变量中,其中+= 表示它的值将继续添加到它以前的值本身(以获得所有行中 a 的总数)。

然后创建名为 countSemiColon 的变量,它在每一行中具有全局替换 ; 的值,并不断添加所有行中的所有值以获得整个 Input_file 中的所有出现.在 awkEND block 中,根据需要的输出打印变量 countAcountSemiColon 的值。

关于awk 计算指定字符出现次数,未找到则返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72284624/

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