【问题标题】:Awk increment in dash破折号中的 awk 增量
【发布时间】:2016-07-04 00:27:32
【问题描述】:

我对 awk 的增量有疑问。我想增加参数以在循环中使用。 awk 看起来像这样:

awk -F ',' '{printf ("*."$1)}'

我不知道如何在循环中增加参数。

第一次迭代后:awk -F ',' '{printf ("*."$2)}'

第二次迭代后:awk -F ',' '{printf ("*."$3)}'

等等

感谢您的帮助

【问题讨论】:

    标签: bash posix dash-shell


    【解决方案1】:

    你可以写一个 for 循环,我假设你想遍历元素,其中会有 NF。

    awk -F, '{for(i=1;i<=NF;i++) printf "*.%s\n", $i}
    

    最好放一个示例输入和预期输出,以便从 SO 获得更好的帮助。

    $ echo c,ccc,ccccc,ppm,sad,sh,txt,txt | 
      awk -F, '{for(i=1;i<=NF;i++) printf "suffix[%d]=%s\n",i, $i}'
    
    suffix[1]=c
    suffix[2]=ccc
    suffix[3]=ccccc
    suffix[4]=ppm
    suffix[5]=sad
    suffix[6]=sh
    suffix[7]=txt
    suffix[8]=txt
    

    如果您希望它们与 ; 分隔符位于同一行,请从 printf 中删除 \n 并将 -v OFS=';' 添加为 awk 选项。

    【讨论】:

    • 我想为每次迭代做这样的事情:sort -ns|awk '{ print;总计 += $1 }; END{ print total }'|tail -n 1. 感谢您的帮助:)
    • 请使用示例输入和预期输出更新您的问题。您可以一次添加所有列,无需显式迭代。
    • 输入(看起来像这样):c,ccc,ccccc,ppm,sad,sh,txt,txt~ 输出:suffix[1]= ".c" ;后缀[2]=".ccc" ;等
    猜你喜欢
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2023-03-20
    • 2011-11-05
    • 2011-12-17
    相关资源
    最近更新 更多