查找匹配项并替换为数字序列

Finding a match and replacing with a sequence of numbers

我有这样的文件:

file1.txt
i0  AAAAAA
    AAAAAA
i0  AAAAAA
    AAAAAA
i0  AAAAAA
    AAAAAA

我想用一系列数字替换所有 i0,因此生成的文件如下所示:

  file1.txt
    i0  AAAAAA
        AAAAAA
    i1  AAAAAA
        AAAAAA
    i2  AAAAAA
        AAAAAA

我现在拥有的是:

awk -vRS=i0 '{[=12=]=n[=12=];ORS=RT}++n'

但这会导致:

file1.txt
i10  AAAAAA
     AAAAAA
i20  AAAAAA
     AAAAAA
i30  AAAAAA
     AAAAAA

我哪里错了?

这行不通

awk -vRS=i0 '{[=10=]=n[=10=];ORS=RT}++n'

因为每次读取一条记录都会设置RT。它包含与记录分隔符 RS 表示的文本相匹配的输入文本。

只需将 RT 替换为硬编码的 "i"

awk -v RS=i0 '{[=11=]=n[=11=];ORS="i"}++n'

输出将是:

i1 AAAAAAAA
AAAAAAAA
i2 AAAAAAAA
AAAAAAAA
i3 AAAAAAAA
AAAAAAAA