Você pode, por exemplo, usar isto:
$ awk '/H/{sub("H", "H"++v)}1' file
1562 first part
1563 H1 col3 H col4
1564 H2 col3 H col4
3241 H3 col3 H col4
3242 third part
...
Isso procura as linhas que contêm H
e substitui H
por H
junto com uma variável que continuamos incrementando. Observe que você pode usar gsub()
em vez de sub()
se quiser realizar essa alteração em todos os padrões correspondentes em vez de apenas um.
O% final 1
é uma condição verdadeira, portanto, ele executa a ação awk padrão: {print $0}
, ou seja, imprime a linha completa.