在 bash 中为 txt 文件中的每个匹配模式添加编号

Gre*_*del 1 regex awk grep sed

您好,我有一个文件,例如

文件.txt

>LO_D
AHAHAHAHHAHAH
>LEIO_DS
DHHDHDHDHDH
>LODJ_jdjd
DJDJHDHDHD
>LO_D
AAAAAAA
>LO_D
HHAHAHAHAHAH
Run Code Online (Sandbox Code Playgroud)

我想在每个>LO_D元素之后添加一个数字

然后我应该得到:

>LO_D_1
AHAHAHAHHAHAH
>LEIO_DS
DHHDHDHDHDH
>LODJ_jdjd
DJDJHDHDHD
>LO_D_2
AAAAAAA
>LO_D_3
HHAHAHAHAHAH
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

你可以使用这个awk

awk '/^>LO_D$/ {$0 = $0 "_" (++n)} 1' file

>LO_D_1
AHAHAHAHHAHAH
>LEIO_DS
DHHDHDHDHDH
>LODJ_jdjd
DJDJHDHDHD
>LO_D_2
AAAAAAA
>LO_D_3
HHAHAHAHAHAH
Run Code Online (Sandbox Code Playgroud)