首页 > 解决方案 > 如何使用 linux 命令在现有的制表符分隔文件中附加索引?

问题描述

我在下面有一个文件,它是制表符分隔的。

TK              015_LIT NA      CAT     mask

我希望它被复制以使其成为大文件,如下所示。

TK              015_LIT NA      CAT     mask1
TK              015_LIT NA      CAT     mask2
TK              015_LIT NA      CAT     mask3
TK              015_LIT NA      CAT     mask4
TK              015_LIT NA      CAT     mask5
TK              015_LIT NA      CAT     mask6

但是,我将其编码如下,但它不起作用,因为它旁边的数字mask始终为零,即使我增加了它。我的代码如下所示。

counter=0
for start in {1..5}
do
        awk '{printf("%s \t %s \t %s \t %s \t %s \t %d \n",$1,$2,$3,$4,$5,$counter)}' ./medium/cause1
        let counter=1+$counter
        echo $counter
done

无论如何如何实现我的目标?

标签: bashshellawk

解决方案


您可以使用以下 awk one-liner 来做到这一点:

 awk -v times=5 '{while(i<times) print $0(++i)}' file

更改times变量以获得不同的行数。您还可以将 shell 变量传递给 awk,例如:

 awk -v times="$VarFromShell" '{.....

推荐阅读