Нахождение совпадения и замена на последовательность чисел - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть файлы, которые выглядят следующим образом:

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

Где я иду не так?

1 Ответ

0 голосов
/ 14 февраля 2019

Это не работает

awk -vRS=i0 '{$0=n$0;ORS=RT}++n'

Поскольку RT устанавливается каждый раз при чтении записи.Он содержит входной текст, который соответствует тексту, обозначенному RS, как разделитель записей.

Просто замените RT жестко закодированным "i"

awk -v RS=i0 '{$0=n$0;ORS="i"}++n'

Вывод будет:

i1 AAAAAAAA
AAAAAAAA
i2 AAAAAAAA
AAAAAAAA
i3 AAAAAAAA
AAAAAAAA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...