awk:向文件添加自动增量字段

awk:向文件添加自动增量字段

给定一个文件,我遇到以下问题

val1 val2 text_0 
val1 val2 text_0 
val1 val2 text_0 
...
val1 val2 text_1 
val1 val2 text_1 
val1 val2 text_1 
...
val1 val2 text_2 
val1 val2 text_2 
val1 val2 text_2 
...

我需要在每一text_列上附加一个自动增量,以便每个新标记的自动增量从 0 开始,例如

val1 val2 text_0_0 
val1 val2 text_0_1 
val1 val2 text_0_2 
...
val1 val2 text_1_0 
val1 val2 text_1_1 
val1 val2 text_1_2 
...

我不熟悉 AWK,我找不到方法来做到这一点。

答案1

短的awk方法:

awk '{ $3=$3"_"a[$3]++ }1' file

近似输出:

val1 val2 text_0_0
val1 val2 text_0_1
val1 val2 text_0_2
...  
val1 val2 text_1_0
val1 val2 text_1_1
val1 val2 text_1_2
...  
val1 val2 text_2_0
val1 val2 text_2_1
val1 val2 text_2_2

  • a[$3]++<var>++- 通过后自增 ( )计算第三个字段值的出现

相关内容