用Unix方式总结两列

Léo*_* 준영 1 python unix perl awk brackets

#修复症状

如何有效地总结以下列?

第1栏

1
3
3
...   
Run Code Online (Sandbox Code Playgroud)

第2栏

2323
343
232
...
Run Code Online (Sandbox Code Playgroud)

这应该给我

预期结果

2324
346
235
...
Run Code Online (Sandbox Code Playgroud)

我有两个文件中的列.


#初始情况

我有时会使用太多大括号,以至于我在我的文件中再使用了一个{than this}.我试图找到我使用了一个不必要的花括号的地方.我在获取数据时使用了以下步骤

查找命令

 find . * -exec grep '{' {} + > /tmp/1
 find . * -exec grep '}' {} + > /tmp/2
Run Code Online (Sandbox Code Playgroud)

AWK命令

 awk -F: '{ print $2 }' /tmp/1 > /tmp/11
 awk -F: '{ print $2 }' /tmp/2 > /tmp/22
Run Code Online (Sandbox Code Playgroud)

该列位于文件/ tmp/11和/ tmp/22中.

我在我的程序中重复了很多类似的命令.这告诉我,这不是正确的方法.

请告诉我任何方式,如Python,Perl或任何可以减少步骤数量的Unix工具.

Sil*_*ost 11

使用python:

totals = [ int(i)+int(j) for i, j in zip ( open(fname1), open(fname2) ) ]
Run Code Online (Sandbox Code Playgroud)

  • 如果你告诉人们它是什么有帮助,你不能只在命令行上键入它,我只知道它是Python,因为它使用了列表理解. (5认同)

小智 11

如果c1和c2是你的文件,你可以这样做:

$ paste c1 c2 | awk '{print $1 + $2}'
Run Code Online (Sandbox Code Playgroud)

或者(没有AWK):

$ paste c1 c2 | while read i j; do echo $(($i+$j)); done
Run Code Online (Sandbox Code Playgroud)