Substituindo várias linhas em sed ou awk [closed]

8

Estou tentando usar sed ou awk para substituir 5 linhas em um arquivo smb, mas não tenho a menor ideia de como lidar com as novas linhas.

    
por glisignoli 25.08.2010 / 05:50

1 resposta

17

Sed é muito ruim nisso, porque opera uma linha por vez. A única técnica decente que eu já vi para fazer isso é este aqui , que envolve armazenar todo o arquivo no buffer de espera do sed e depois operá-lo de uma vez:

sed -n '1h;1!H;${g;s/search/replace/;p;}'

Se você puder, é muito mais fácil usar o perl para fazer isso:

perl -0pe 's/search/replace/'

search pode conter \n s para representar novas linhas

    
por 25.08.2010 / 06:50