SED: insere texto após a última linha?

65

O comando insere uma tag no início de um arquivo:

sed -i "1s/^/<?php /" file

Como posso inserir algo no final de cada arquivo com o SED?

    
por don_crissti 06.09.2009 / 16:42

6 respostas

79

sed -e "\$aTEXTTOEND" é o caminho mais simples.

Como funciona

$ corresponde à última linha (é um% normalsed address; 4aTEXTTOEND inseria após a quarta linha), a é o comando append e TEXTTOEND é o que anexar.

    
por 12.12.2011 / 14:12
26

Não é necessário usar sed nesse caso. Como sobre

echo "<?php" >> file
    
por 06.09.2009 / 16:47
23

Supondo que você queira colocar a tag php final nos arquivos, então

sed -i '$s/$/\n?>/' file

deve fazer o truque

    
por 06.09.2009 / 16:46
5

Veja o seu post original para o tudo em um comando sed.

find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
    
por 06.09.2009 / 18:00
3

Use o comando sed 'append (a)'. Por exemplo, para anexar duas linhas no final do arquivo:

sed -i -e '$a\
foo1 bar1\
foo2 bar2' file
    
por 05.01.2014 / 01:28
1

De uma maneira simples para escrever e fazer as alterações no conteúdo em uma linha específica em um arquivo. Se você quiser inserir algo em um número de linha específico, o comando abaixo pode ser usado:

sed -i '2i i have started' sheikh.log

onde 2i - linha número 2 e i significa inserção. Se você tiver que inserir na última linha, use $ no lugar de 2. Eu comecei - o texto a ser inserido e sheikh.log é o nome do arquivo.

Também podemos fazer as alterações na linha usando o comando abaixo

sed -i '2c we have started' sheikh.log

i é alterado para we .

    
por 26.08.2014 / 13:17

Tags