gpt4 book ai didi

linux - 输出包括使用 Awk 检查的每个条件的空行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:57 25 4
gpt4 key购买 nike

我有一个函数可以查看文件中的每个数字,检查它是否是一个完美的正方形,如果是,则将计数器加 1。该函数的目标是计算完美正方形的总数。

awk 'function root(x)  
{if (sqrt(x) == int(sqrt(x))) count+=1 }
{print root($1)}
END{print count}' numbers_1k.list

每次检查文件行的条件时,此代码的输出都会给出一个空行。因此,如果文件有 1000 行,则其在输出中的 1000 个空白行后跟变量 count

有没有办法避免这种情况?我查过以前的类似questions .

最佳答案

问题是您使用 { print root() } 其中 root() 不返回任何内容,它应该是:

awk 'function root() { return sqrt(x) == int(sqrt(x))}
root($1) {count++}
END {print count}' file

顺便说一句,你不需要一个函数:

awk 'sqrt($1) == int(sqrt($1)) {count++} END {print count}' file

关于linux - 输出包括使用 Awk 检查的每个条件的空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52830142/

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