Respostas:
sed -e "\$aTEXTTOEND"
é a maneira mais simples.
$
corresponde à última linha (é um sed
endereço normal ; 4aTEXTTOEND
seria inserido após a quarta linha), a
é o comando append e TEXTTOEND
é o que acrescentar.
sed -e '$a\NEWLINE\\'
. Substitua NEWLINE por uma nova linha real.
Não há necessidade de usar sed
nesse caso. E se
echo "<?php" >> file
<php
" e " >
" e citando o conteúdo selecionado de uma só vez, então ele provavelmente realmente quer um sed
fragmento.
sudo
, o que causa uma falha nessa variação, já que echo
é um comando shell interno, e não um arquivo executável encontrado em$PATH
echo
é um arquivo interno, mas também é um arquivo executável encontrado em$PATH
Supondo que você queira colocar a tag php final nos arquivos,
sed -i '$s/$/\n?>/' file
deve fazer o truque
Veja sua postagem original para obter o comando all in one sed.
find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
Use o comando sed 'append (a)'. Por exemplo, para acrescentar duas linhas no final do arquivo:
sed -i -e '$a\
foo1 bar1\
foo2 bar2' file
De uma maneira simples, para escrever e fazer as alterações no conteúdo em uma linha específica de um arquivo. Se você deseja 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
- a linha número 2 e i significa inserção. Se você precisar inserir a ú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
.
Eu diria que qualquer um que tenha pesquisado como inserir / anexar texto ao início / fim de um arquivo provavelmente também precisará saber como fazer o outro.
cal | \
gsed -E \
-e '1i\{' \
-e '1i\ "lines": [' \
-e 's/(.*)/ "\1",/' \
-e '$s/,$//' \
-e '$a\ ]' \
-e '$a\}'
Isso é cal
enviado para o gnu- sed
(chamado gsed
no macOS instalado via brew.sh ) com RegEx ( -E
) estendido e 6 "scripts" aplicados ( -e
) e as quebras de linha são escapadas \
para facilitar a leitura. Os scripts 1 e 2 usam 1i\
"na linha 1, insira". Os scripts 5 e 6 costumam $a\
"na linha <último>, acrescentar". Alinhei verticalmente as saídas de texto para fazer o código representar o que é esperado no resultado. Os scripts 3 e 4 fazem substituições (o último se aplica somente à "linha <última>"). O resultado é a conversão da saída do comando para JSON válido.
{
"lines": [
" October 2019 ",
"Su Mo Tu We Th Fr Sa ",
" 1 2 3 4 5 ",
" 6 7 8 9 10 11 12 ",
"13 14 15 16 17 18 19 ",
"20 21 22 23 24 25 26 ",
"27 28 29 30 31 ",
" "
]
}
{ cat file; echo 'END OF FILE'; } > newFile
, isso também funciona graças a sh. *. (não sed, mas funciona e é simples)