【发布时间】:2016-07-04 00:27:32
【问题描述】:
我对 awk 的增量有疑问。我想增加参数以在循环中使用。 awk 看起来像这样:
awk -F ',' '{printf ("*."$1)}'
我不知道如何在循环中增加参数。
第一次迭代后:
awk -F ',' '{printf ("*."$2)}'第二次迭代后:
awk -F ',' '{printf ("*."$3)}'等等
感谢您的帮助
【问题讨论】:
标签: bash posix dash-shell
我对 awk 的增量有疑问。我想增加参数以在循环中使用。 awk 看起来像这样:
awk -F ',' '{printf ("*."$1)}'
我不知道如何在循环中增加参数。
第一次迭代后:
awk -F ',' '{printf ("*."$2)}'第二次迭代后:
awk -F ',' '{printf ("*."$3)}'等等
感谢您的帮助
【问题讨论】:
标签: bash posix dash-shell
你可以写一个 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 选项。
【讨论】: