awk求和的多方位探讨

一、awk求和为空显示0

在实际应用中,经常会遇到需要进行文件数值求和的情况。而在awk中,求和的函数为sum,使用方法为:

awk '{sum+=$1} END {print sum}' file.txt

可能会出现file.txt中不存在数值的情况,此时awk会输出不知道的结果,而这无疑会影响程序的正确性。因此,我们可以在求和前加一个if判断,当文件为空时,输出0。代码如下:

awk '{if(NR==1)sum=0;sum+=$1} END {if(NR==0)print "0";else print sum}' file.txt

当文件为空时,程序会输出0,避免了结果不确定的情况。

二、awk求和取消科学记数法

在Linux中,如果输出结果太大,会自动使用科学记数法输出。这在输出结果需要进行进一步计算时,会产生困扰。因此,我们需要取消科学记数法,输出实际数值。

awk '{sum+=$1} END {printf "%.0f",sum}' file.txt

在printf中,%.0f的含义是保留小数点后0位,这样就可以输出实际数值。

三、awk求和为空添加0

在文件中,有些行是空行,这些空行无法直接相加,而更改文件很麻烦。我们可以在awk中,将空行的值默认为0,再进行求和。代码如下:

awk '{if($1!=""){sum+=$1}else{sum+=0}} END {print sum}' file.txt

当行不为空时,将数值累加;当行为空时,将默认数值0累加。

四、awk求和sum

awk中,提供了一个内嵌变量sum,提供了快速求和的方式。使用方法和变量名均为sum,代码如下:

awk '{sum+=$1} END {print sum}' file.txt

相较于手动累加,使用内嵌变量sum的方式更为简便。

五、求kcrwf等于ak

在awk中,我们可以将一个值赋给变量,方便后续进行操作。在下例中,我们需要对$kcrwf的值进行变换,使其等于$ak。代码如下:

awk '{$kcrwf=$ak} {sum+=$kcrwf} END {print sum}' file.txt

在对变量进行赋值后,我们使用$kcrwf进行操作即可。值得注意的是,当进行赋值操作后,需要在同一行进行操作,否则赋值无效。

六、awk求和显示0

当文件中并不存在需要求和的数值时,awk会将结果默认输出为空。但是,在某些场景下,我们需要将空值显示为0,此时,我们可以加一个if语句进行判断。代码如下:

awk '{sum+=$1} END {if(sum==""){printf "0"}else{print sum}}' file.txt

当sum为””时,输出0;否则输出sum。这样做的好处是,无论sum是否为空,都可以把控输出结果。

七、linux awk求和

awk本身就是一款强大的文本处理工具,在Linux中使用也十分广泛。对于求和操作而言,Linux中的awk同样对于数字类型做了充足的支持。使用方法与Linux awk类似,只是将$0换成实际的数字,即可完成求和操作。代码如下:

echo "1 2 3 4 5" | awk '{sum+=$1} END {print sum}'                     

在控制台中输入一连串数字,使用管道传入awk中,然后求和输出结果。与Linux awk相比,调用方式更为简便。

八、awk获取指定字符串

在awk中,我们可以使用$0获取整行的值,使用$1获取第一个值。但是,当我们需要获取一个字符串中的一部分时,我们需要使用substr函数。substr函数的使用方法为:

awk '{print substr($0,2,3)}' file.txt

整个substr函数分为三个参数,第一个参数表示字符串本身,第二个参数表示开始的位置,第三个参数表示结束的位置。例如上式中的substr($0,2,3),表示从字符串$0的第二位开始,往后取3个字符。

九、awk数组打印for循环

在awk中,我们可以使用数组对数据进行分析,同时使用for循环打印分析结果。使用数组时,我们可以将每个值存入数组中,使用for循环进行输出。

awk '{counts[$1]++} END {for(word in counts){print word,counts[word]}}' file.txt

上式中,我们使用counts数组存储行中每个值出现的次数。然后,在使用for循环遍历counts数组,输出结果。这样,我们就可以清晰地看到每个值出现的次数。

十、awk正则表达式匹配数字

在实际应用中,我们可能只需要对文件中指定格式的数字进行求和。此时,我们可以使用正则表达式匹配指定格式的数字,再进行求和。

awk '{for(i=1;i<=NF;i++){if($i~/^[0-9]+(\.[0-9]+)?$/){sum+=$i}}} END {print sum}' file.txt

上式中,我们使用for循环匹配每个单元格中是否符合正则表达式格式,再进行累加。正则表达式的含义是:数字的整数部分可以使用0~9中任意数字,小数部分使用.开头加任意数字。即匹配任意数值的格式。并且在匹配过程中避免了不合法字符的出现,增加了程序的稳健性。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/239342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:16
下一篇 2024-12-12 12:16

相关推荐

  • NLP领域的多方位探索

    一、文本分类 文本分类是NLP领域中的一个重要任务,它的目的是自动将文本分配到不同的预定义类别中。文本分类技术可以在广泛的领域中应用,例如情感分析、舆情监测等。 文本分类的一种常见…

    编程 2025-04-24
  • 深入浅出AWK -v参数

    一、功能介绍 AWK是一种强大的文本处理工具,它可以用于数据分析、报告生成、日志分析等多个领域。其中,-v参数是AWK中一个非常有用的参数,它用于定义一个变量并赋值。下面让我们详细…

    编程 2025-04-24
  • display属性的多方位应用

    一、display属性概述 display属性是CSS中常用的一个属性,它定义了一个元素的盒模型类型,以及其在页面上的布局形式。在HTML文档中,每个HTML标签都有一个默认的di…

    编程 2025-04-23
  • 多方位详解日期格式化

    一、基本概念 日期格式化是指将日期类型转换为字符串类型的过程,常见于前端页面的数据展示。日期格式化通常需要指定日期的格式。在 JavaScript 中,可以使用 Date 对象来表…

    编程 2025-04-23
  • 小企鹅输入法的多方位优势

    一、智能识别与纠错能力 小企鹅输入法在智能化方面成绩突出。它能够聚合用户常用的表情符号、词组和词库,预测和推荐输入内容,大大提升了用户的输入效率。同时,它还能够通过机器学习实现纠错…

    编程 2025-04-23
  • Unity Toggle组件的多方位探索

    一、Toggle是什么 Toggle是unity中的一个UI组件,可以理解为开关或者复选框,用于实现用户交互中的选择功能,常用于设置界面、游戏中的道具选择、任务选项等。 Toggl…

    编程 2025-04-22
  • str.substring()——多方位详解

    一、基本介绍 在JavaScript中,字符串是常见数据类型之一,而在我们操作字符串时,常常需要截取其中一部分。这时,str.substring()方法就派上了用场。该方法用于获取…

    编程 2025-04-12
  • 多方位了解查看Linux版本命令

    一、使用uname命令查看Linux版本 在Linux系统中,使用uname命令可以查看Linux系统的版本和系统基本信息。 例如,输入如下命令: uname -a 输出结果类似于…

    编程 2025-04-12
  • matlab if函数:多方位解析

    一、if函数基本用法 if是matlab中常用的基础控制语句之一,它根据判断条件是否成立,决定程序接下来执行的语句。if函数的基本语法为: if (condition) state…

    编程 2025-04-12
  • Matlab编辑器的多方位探究

    一、编辑器基础功能 Matlab作为一种用于科学计算的高级编程语言和交互式环境,其内置的编辑器自然是其一个重要且基础的部分。作为一个编辑器,它的基础功能包括文件的打开、编辑、保存、…

    编程 2025-04-12

发表回复

登录后才能评论