Bash 求和,然后使用awk命令追加列的值
我正在尝试,在对文件标记进行求和后,追加,即文件标记的求和结果Bash 求和,然后使用awk命令追加列的值,bash,shell,scripting,Bash,Shell,Scripting,我正在尝试,在对文件标记进行求和后,追加,即文件标记的求和结果 我的文件位于,/home/evaluation,包含以下内容: 英语16 历史14 生物学15 我想要这样的东西: 英语16 历史14 生物学15 总数:45 **到目前为止,我做了如下工作: for file in /home/evaluation/* ; do awk '{sum+=$2} END {print "total:" sum}' "$file" done 不幸的是,它只打印求和值,但不附加它。
我的文件位于,/home/evaluation,包含以下内容:
- 英语16
- 历史14
- 生物学15
我想要这样的东西:
- 英语16
- 历史14
- 生物学15
- 总数:45
**到目前为止,我做了如下工作:
for file in /home/evaluation/* ; do
awk '{sum+=$2} END {print "total:" sum}' "$file"
done
不幸的是,它只打印求和值,但不附加它。您是否无法使
awk
命令类似于此,而只执行>
附加
awk'{sum+=$2}结束{print”总计:“sum}'$file”>>$file
您可以使它稍微优雅一点-例如,添加一个if条件,仅添加行
总计:
,如果该行尚不存在。您是否无法使awk
命令类似于此,只需执行>
追加
awk'{sum+=$2}结束{print”总计:“sum}'$file”>>$file
您可以使它稍微优雅一些-例如,添加一个if条件,仅添加行总计:
,如果该行尚未存在。使用GNU awk:
$ awk '{t+=$2}ENDFILE{print "Total",t >> FILENAME}' file
$ cat file
English 16
History 14
Biology 15
Total 45
在strace
ing之后,如果您将ENDFILE
用于多个文件,我认为应该在ENDFILE
的末尾有一个close(FILENAME)
。使用GNU awk:
$ awk '{t+=$2}ENDFILE{print "Total",t >> FILENAME}' file
$ cat file
English 16
History 14
Biology 15
Total 45
在
strace
ing之后,如果您将其用于多个文件,我认为应该在ENDFILE
的末尾有一个close(FILENAME)
。。。我完全忘了“>>”是附加的。。非常感谢你提醒我不要担心。有时候,我会在兔子洞里走得太远,我忘记了最基本的事情——我每天都这样做。哦,我的天啊,真的。。。我完全忘了“>>”是附加的。。非常感谢你提醒我不要担心。有时候,我会在兔子洞里走得太远,我忘记了最基本的事情——我每天都这样做。非常感谢!我的错我忘了“>>”是附加的。非常感谢!我忘了“>>”是我的错。