繁体   English   中英

awk:如何通过awk返回列数?

[英]awk:How return number of columns by awk?

数据源:

a b c d

期望:

$1 $2 $3 $4
a  b  c  d

我尝试echo 'abc d'| awk 'END {for(i=1;i<=NF;i++) printf("$%d\\t",i)}' echo 'abc d'| awk 'END {for(i=1;i<=NF;i++) printf("$%d\\t",i)}' (但失败)

$ echo 'a b c d' |
    awk 'FNR==1{for (i=1;i<=NF;i++) printf "$%d%s", i, (i<NF ? OFS : ORS)} 1'
$1 $2 $3 $4
a b c d

$ echo 'a b c d' |
    awk 'FNR==1{for (i=1;i<=NF;i++) printf "$%d%s", i, (i<NF ? OFS : ORS)} 1' |
    column -t
$1  $2  $3  $4
a   b   c   d

阅读Arnold Robbins撰写的第4版有效的Awk编程-尝试在END部分中进行此操作,并且脚本中的其他内容表明您缺少awk的基础知识。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM