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

Awk 查找匹配项并用数字序列替换,awk,sed,edit,Awk,Sed,Edit,我的文件看起来像: 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 '{$0=n$0;OR

我的文件看起来像:

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 '{$0=n$0;ORS=RT}++n'
但这导致:

file1.txt
i10  AAAAAA
     AAAAAA
i20  AAAAAA
     AAAAAA
i30  AAAAAA
     AAAAAA
我哪里出错了?

这不起作用

awk -vRS=i0 '{$0=n$0;ORS=RT}++n'
因为每次读取记录时都会设置RT。它包含与记录分隔符RS表示的文本相匹配的输入文本

用硬编码的i替换RT

输出将是:

i1 AAAAAAAA
AAAAAAAA
i2 AAAAAAAA
AAAAAAAA
i3 AAAAAAAA
AAAAAAAA

为什么不在+++}1中使用awk'/^i0/{sub/^i0/,这样做效果很好,谢谢!或awk-F'[]'$1==i0{$1=IC++}1'文件
i1 AAAAAAAA
AAAAAAAA
i2 AAAAAAAA
AAAAAAAA
i3 AAAAAAAA
AAAAAAAA