如何在bash中添加列索引

时间:2015-09-26 17:19:48

标签: linux bash

我有一个包含许多行和列的文本文件,如下所示:

a b c d ...  
e f g h ...  
i j k l ...  
...  

我想为每个条目添加列索引,输出看起来像这样

1:a 2:b 3:c 4:d ...  
1:e 2:f 3:g 4:h ...  
1:i 2:j 3:k 4:l ...  
... 

我想知道是否有一种简单的方法可以在bash中实现这一点。谢谢!

2 个答案:

答案 0 :(得分:1)

使用awk:

awk '{for (i=1;i<=NF;i++){printf i":"$i" "};printf "\n"}' file

输出:

1:a 2:b 3:c 4:d 5:... 
1:e 2:f 3:g 4:h 5:... 
1:i 2:j 3:k 4:l 5:... 
1:... 

答案 1 :(得分:1)

使用perl:

perl -lane '$, = " "; print map { (1 + $_) . ":$F[$_]" } 0 .. $#F' file
# or
perl -lane '$, = " "; $i = 1 ; print map { $i++ . ":$_" } @F' file