perl + append WORD no final da última linha do arquivo

2

Eu uso o seguinte perl uma linha para anexar o WORD no final da última linha do arquivo

     perl -p -i -e 's/$/WORD/;' file

Mas é anexar a PALAVRA em todas as linhas -

Como consertar a sintaxe do perl para anexar o WORD somente na última linha do arquivo

exemplo

  more file

  AAAAA BBB
  WWWWW
  EEEEE WORD
    
por jennifer 12.10.2010 / 15:20

3 respostas

4

Você precisa detectar que atingiu o fim do arquivo usando eof :

perl -p -i -e 'eof && s/$/WORD/;'  file
    
por 12.10.2010 / 15:54
2

Veja um equivalente usando sed :

sed -ie '$s/$/WORD/' file
    
por 12.10.2010 / 17:12
1

Basta adicionar o sinalizador -0 :

perl -0pie 's/$/WORD/' file

Eu nunca usaria -i sem uma extensão adicional. Se o seu Perl não fizer o que você pretendia, sua entrada será perdida. A propósito, ; não é um terminador de instrução em Perl, mas um separador de instrução.

perl -i.orig -0pe 's/$/WORD/' file

Outro idioma útil para testes:

perl -0pe 's/$/WORD/' file | diff file -
    
por 12.10.2010 / 17:55

Tags