quarta-feira, 14 de setembro de 2011

Dica rápida: perl - encontrar e adicionar texto inline

Muitas vezes queremos adicionar a uma determinada linha de um arquivo algum texto. Mas isso é simples alguém diria, basta abrir um editor de texto, localizar e acrescentar o texto desejado. Em certas situações é a melhor escolha mesmo, entretanto muitas vezes encontramos situações nas quais esse procedimento torna-se inviável. Então, para estes casos, uso o perl.
Suponha que tenhamos o seguinte texto em um arquivo chamado arq.txt:

abcde bla kjlkjlk klkjlkj teste
fghijkl bla kjlkjlk klkjlkj teste


e queiramos inserir ao final da primeira linha a palavra MAIS, então usaríamos o perl da seguinte forma:

$ perl -i.bkp -pe 's/^abcde.*teste/$&\ MAIS/' arq.txt

Portanto, teríamos com apenas um comando realizado o trabalho e ainda feito um cópia do arquivo original que se chamaria arq.txt.bkp.

É necessário notar que se outras linhas no arquivo começassem com abcde e terminassem com teste, o comando também mexeria nelas.