bash:如何将列号添加到第一行

bash:如何将列号添加到第一行

我有很多大的 .txt 文件,例如:

xx yy ... zz 
XX YY ... ZZ

我想向它们添加一个标题行,每个标题行都有不同的列数:

1 2 ... 999
xx yy ... zz
XX YY ... ZZ

由于它们有不同的列数,我无法直接输入“1\t2\t....”,我猜代码应该包含诸如$NF.你有什么主意吗?感谢您的帮助。

答案1

使用awk

awk 'NR==1{for (i=1;i<=NF;i++) printf "%s%s",i,i==NF?ORS:OFS}1' file

如果您有制表符分隔的文件,请BEGIN{FS=OFS="\t"}在脚本的开头添加。awk

检查这里如何就地编辑文件。

相关内容