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'來插入必要的額外字符。 –