Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 求和,然后使用awk命令追加列的值_Bash_Shell_Scripting - Fatal编程技术网

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)
。。。我完全忘了“>>”是附加的。。非常感谢你提醒我不要担心。有时候,我会在兔子洞里走得太远,我忘记了最基本的事情——我每天都这样做。哦,我的天啊,真的。。。我完全忘了“>>”是附加的。。非常感谢你提醒我不要担心。有时候,我会在兔子洞里走得太远,我忘记了最基本的事情——我每天都这样做。非常感谢!我的错我忘了“>>”是附加的。非常感谢!我忘了“>>”是我的错。