作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想计算文件中的所有数字。
示例:
input -> Hi, this is 25 ...
input -> Lalala 21 or 29 what is ... 79?
输出应该是所有数字的总和:154
(即 25+21+29+79)。
最佳答案
从这里beautiful answer by hek2mgl关于如何提取文件中最大的数字,让我们捕获文件中的所有数字并将它们相加:
$ awk '{for(i=1;i<=NF;i++){sum+=$i}}END{print sum}' RS='$' FPAT='-{0,1}[0-9]+' file
154
这以整个文本 block 是唯一记录的方式设置记录分隔符。然后,它设置 FPAT
这样每个数字(正数或负数)都是一个不同的字段:
FPAT #
A regular expression (as a string) that tells gawk to create the fields based on text that matches the regular expression. Assigning a value to FPAT overrides the use of FS and FIELDWIDTHS for field splitting.
关于linux - 如何用awk计算文件中的所有数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275098/
我是一名优秀的程序员,十分优秀!