Um arquivo de texto unix bem formado deve ter uma nova linha no final do arquivo. Para alcançar o que você deseja, a string deve ser colocada antes da nova linha à direita existente .
Considere este arquivo de teste:
$ cat File
1
2
3
Agora, vamos adicionar palavras à última linha antes do último caractere de nova linha:
$ sed '$s/$/new words/' File
1
2
3new words
Ou, se você quiser editar o arquivo, use a opção -i
:
sed -i.bak '$s/$/new words/' File
Como funciona:
-
$
O primeiro
$
diz ao sed para executar apenas o comando que segue na última linha do arquivo. -
s/$/new words/
Para a última linha no arquivo, isso coloca
new words
no final da linha, mas antes do caractere final da nova linha.Em um comando substituto,
$
significa o fim da linha.