mlgrassi
(usa Debian)
Enviado em 25/06/2016 - 01:38h
Necessito saber como utilizar o sed para remover um intervalo de caracteres em uma ou mais linhas de um arquivo.
Por exemplo, supondo que tenho um arquivo teste.txt contendo a linha abaixo:
1234567890remover_por_posicao0987654321
Devem ser removidos os caracteres que compõem a string "remover_por_posicao", isso significa que preciso construir um comando sed que substituirá o conteúdo da posição 11 até a posição 29 resultando em:
2345678900987654321
Veja bem, estou supondo que eu não saiba o conteúdo a ser removido, e sim apenas a posição dos caracteres.
O comando abaixo, por exemplo, funciona para eliminar apenas a posição 11 da linha:
sed -ri 's/^(.{11})(.)(.*)$/\1\3/g' teste.txt
No entanto preciso que seja do 11 ao 29, portanto pergunto, como faço?