![awk:向文件添加自动增量字段](https://linux22.com/image/114836/awk%EF%BC%9A%E5%90%91%E6%96%87%E4%BB%B6%E6%B7%BB%E5%8A%A0%E8%87%AA%E5%8A%A8%E5%A2%9E%E9%87%8F%E5%AD%97%E6%AE%B5.png)
给定一个文件,我遇到以下问题
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>++
- 通过后自增 ( )计算第三个字段值的出现