sed
é a maneira correta de fazer isso, mesmo que você tenha dito que, por algum motivo, não quer usar sed
.
O script sed seria parecido com
$i\
this is test4\
this is test5
e você executaria isso como sed -f script.sed file
. O comando i
insere linhas antes da linha endereçada e o $
endereça a última linha do arquivo.
Como um "one-liner" usando o GNU sed
:
$ sed -e '$i\' -e ' this is test4\' -e ' this is test5' file
{
This is test1
this is test2
this is test3
this is test4
this is test5
}
Dependendo se o arquivo é, na verdade, um arquivo JSON ou em algum outro formato de texto estruturado, pode haver ferramentas como jq
que são mais adequadas para manipulá-lo.
Para usar echo
conforme solicitado (isso também pressupõe que você esteja usando head
do GNU coreutils, pois a opção -n
geralmente não recebe um número negativo):
{ head -n -1 file
echo ' this is test4'
echo ' this is test5'
tail -n 1 file; } >newfile