Jack 10 J 10 A 20 Lu cal 20 A bc U 20
我想这些NUMS的总和:10 + 10 + 20 + 20 + 20 = 80BC:获得NUM列表的总和
,但我不能使用cat input|cut -d " " -f 3
得到数字,我该怎么办?
Jack 10 J 10 A 20 Lu cal 20 A bc U 20
我想这些NUMS的总和:10 + 10 + 20 + 20 + 20 = 80BC:获得NUM列表的总和
,但我不能使用cat input|cut -d " " -f 3
得到数字,我该怎么办?
您可以用grep +粘贴+ BC
$ grep -oE '[0-9]+' file
10
10
20
20
20
$ grep -oE '[0-9]+' file | paste -s -d + -
10+10+20+20+20
$ grep -oE '[0-9]+' file | paste -s -d + - | bc
80
,而不是grep的,你可以使用切
$ cut -c 8- file
或只是在awk
$ awk '{print $NF}' file
,但如果你可以用awk,您可以用awk总结
$ awk '{total += $NF} END { print total }' file
假设你的文件名为input.txt:
echo `sed 's/[^0-9]*\([0-9]*\).*/\1+/' input.txt` '0' | bc
(我敢肯定有一个更优雅的方式与SED或AWK可能做到这一点,这仅仅是一个快速的黑客添加终结“0”,使BC高兴。单独运行命令的不同部分要弄清楚这是怎么回事)
的数字似乎在列8开始,如果你应该使用'cut';这应该是一个让你走的暗示。你也不需要'猫'。您可能需要使用'awk'来进行求和,或者'sed'来插入必要的额外字符。 –