相关疑难解决方法(0)

Shell命令求和整数,每行一个?

我正在寻找一个命令,它将接受多行文本作为输入,每行包含一个整数,并输出这些整数的总和.

作为一个背景,我有一个日志文件,其中包括时序测量,所以通过grepping相关的行,并稍微sed重新格式化,我可以列出该文件中的所有时间.然而,我想计算出总数,而且我的思绪已经变得空白,因为任何命令我都可以将这个中间输出传递到最终总和.我过去总是使用expr它,但除非它运行在sed我认为它不会应付这个(即使那样它也会很棘手).

我错过了什么?鉴于可能有多种方法可以实现这一点,我将很乐意阅读(和expr)任何有效的方法,即使其他人已经发布了一个不同的解决方案来完成这项工作.

相关问题:在Unix上计算一列输出总和的最短命令?(来自@Andrew)


更新:哇,正如所料,这里有一些不错的答案.看起来我一定要进行sed更深入的检查expr!

shell

808
推荐指数
24
解决办法
52万
查看次数

从CSV文件中获取条件和

我有一个CSV文件,我想从中提取一些信息:对于一个列中的每个不同值,我想计算另一列中相应值的总和.最终,我可以用Python做,但我相信可以使用简单的解决方案awk.

这可能是CSV文件:

2    1:2010-1-bla:bla    1.6
2    2:2010-1-bla:bla   1.1
2    2:2010-1-bla:bla    3.4
2    3:2010-1-bla:bla    -1.3
2    3:2010-1-bla:bla    6.0
2    3:2010-1-bla:bla    1.1
2    4:2010-1-bla:bla    -1.0
2    5:2010-1-bla:bla    10.9
Run Code Online (Sandbox Code Playgroud)

我想得到:

1    1.6
2    4.5
3    5.8
4    -1.0
5    10.9
Run Code Online (Sandbox Code Playgroud)

现在,我只能提取:

a)第一列的值:

awk -F ' ' '{print $(2)}' MyFile.csv | awk -F ':' '{print $(1)}'
Run Code Online (Sandbox Code Playgroud)

然后得到:

1
2
2
3
3
3
4
5
Run Code Online (Sandbox Code Playgroud)

b)和值相等,例如,1.1在最后一栏中:

awk -F ' ' '{print $(NF)}' MyFile.csv | awk '$1 == 1.1'

然后得到:

1.1 …
Run Code Online (Sandbox Code Playgroud)

csv awk

14
推荐指数
1
解决办法
5637
查看次数

递归Grep仅显示总匹配计数

我正在尝试进行递归grep搜索,例如:

grep -r -c "foo" /some/directory
Run Code Online (Sandbox Code Playgroud)

这给我输出auch为:

/some/directory/somefile_2013-04-08.txt:0
/some/directory/somefile_2013-04-09.txt:1
/some/directory/somefile_2013-04-10.txt:4
...etc
Run Code Online (Sandbox Code Playgroud)

但是,我想获得所有文件中的匹配总数,例如:

Total matches:    5
Run Code Online (Sandbox Code Playgroud)

我已经玩了一些其他的例子,比如在这个帖子中,虽然我似乎无法做到应该如此简单的事情.

bash shell grep

11
推荐指数
2
解决办法
1万
查看次数

最优雅的 unix shell 单行来求和任意精度的数字列表?

关于整数加单行,存在几种建议的 shell 脚本解决方案;
然而,仔细观察所选择的每个解决方案,都存在固有的局限性:

  • awk 那些会以任意精度和整数大小窒息(毕竟它的行为类似于 C)
  • bc 宁愿对任意长的输入不满意: (sed 's/$/+\\/g';echo 0)|bc

了解可能存在跨平台的可移植性问题(参见 [1] [2]),这是不受欢迎的,是否有一个通用的解决方案,它在实用性简洁性上都是赢家?

提示:SunOS 和 MacOSX 是可移植性成为问题的示例。
菲。dc命令可以允许处理任意大的 2^n、整数或其他输入吗?

[1] awkhttps : //stackoverflow.com/a/450821/1574494/sf/answers/1767151781/在 awk 中打印长整数

[2] bc: Bash 命令对一列数字求和

shell scripting awk bc dc

3
推荐指数
1
解决办法
859
查看次数

如何使用bash对文件中的每一列求和

我有一个以下格式的文件

id_1,1,0,2,3,lable1
id_2,3,2,2,1,lable1
id_3,5,1,7,6,lable1
Run Code Online (Sandbox Code Playgroud)

我想要每列的总和(我有超过300列)

9,3,11,10,lable1 
Run Code Online (Sandbox Code Playgroud)

我怎么能用bash做到这一点.我尝试使用这里描述的但没有奏效.

bash shell awk

2
推荐指数
1
解决办法
1316
查看次数

如何用linux总结数字

我做了cat results.txt | grep eval,我得到了

eval: -2.72907
baseline eval (random): -0.031584202184
eval: 0.807805
baseline eval (random): 0.0227601966463
eval: 2.0625
baseline eval (random): 0.0138953249621
Run Code Online (Sandbox Code Playgroud)

如何总结eval,并baseline eval通过命令行Linux命令分开?

linux bash

1
推荐指数
1
解决办法
156
查看次数

标签 统计

shell ×4

awk ×3

bash ×3

bc ×1

csv ×1

dc ×1

grep ×1

linux ×1

scripting ×1