Como substituo determinado texto pelo respectivo número de linha usando sed?

2

Eu tenho um arquivo em que certas linhas (não todas) são assim:

Sequence: n

Desejo substituir n pelo respectivo número de linha.

Como posso fazer isso com sed?

    
por mark 25.08.2011 / 18:36

1 resposta

4

É muito simples com awk (graças a @glenn jackman):

awk '/Sequence: n/ { $2 = NR } { print }' input-file

Em relação a sed , só consegui fazer isso com uma elaboração de duas passagens (testado com GNU sed e com ssed :):

sed '/^Sequence: n$/{s/n$//p;=;d;}' | sed '/^Sequence: $/{N;s/\n//;}' 

O primeiro insere o número da linha na linha após "Sequence:", o segundo une as duas linhas.

    
por 25.08.2011 / 18:42