【问题标题】:How do I append awk script to a file?如何将 awk 脚本附加到文件中?
【发布时间】:2020-04-29 12:45:19
【问题描述】:

你好,我有以下 awk 脚本:

#!/bin/awk -f 

{for(i=4;i<=7;i++) j+=$i;  print "Student",NR",",$1,$2",",j/4; j=0} 

我想将输出附加到一个新文件 (newfile.txt)。

【问题讨论】:

    标签: awk scripting


    【解决方案1】:

    请您尝试以下操作。在awk 代码本身中提及输出文件的位置。

    {for(i=4;i<=7;i++) j+=$i;  print "Student" OFS NR",",$1,$2"," OFS j/4 >> (output_file); j=0}
    


    或者第二种方式是当您运行 awk 代码时,其中 script 是您为运行 awk 程序而调用的脚本名称,例如 -->

    ./script >> output_file
    


    如果您想运行 awk 单行程序以将输出输出到输出文件中,请尝试以下操作。

    awk -v output_file="Output.txt" '{for(i=4;i<=7;i++) j+=$i;  print "Student" OFS NR",",$1,$2"," OFS j/4 >> (output_file); j=0}' Input_file 
    

    在上面的代码中,我创建了一个名为 output_file 的变量,您也可以根据自己的意愿保留它的值。

    【讨论】:

      【解决方案2】:

      不要使用 shebang 从 shell 脚本调用 awk,因为它会剥夺您根据每个(shell 或 awk)最擅长的功能来分离功能的能力。让你的 shell 脚本看起来像这样(使用你用于 shebang 的任何 shell):

      #!/bin/env bash
      
      awk '
      {for(i=4;i<=7;i++) j+=$i;  print "Student",NR",",$1,$2",",j/4; j=0}
      ' "$@" >> newfile.txt
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-23
        • 2021-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-21
        相关资源
        最近更新 更多