Parece que a substituição de comandos e as chaves são mal utilizadas.
NrLines=$(wc -l < t.txt)
sed -i -e 1,"${NrLines}d" t.txt
O comando abaixo funciona para excluir as primeiras 3 linhas:
sed -i -e 1,3d t.txt
Então eu tentei substituir o 3 por uma variável em um script como abaixo
NrLines=$(wc -l t.txt)
sed -i -e 1,"$NrLines{d}" t.txt
e receba o seguinte erro:
sed: -e expression #1, char 13: unexpected '}'
O que estou fazendo de errado?
Outra maneira de fazer isso usando tail
(isso não é ótimo para arquivos grandes):
NrLines=3
<<< "$(< t.txt)" tail -n +$((NrLines+1)) > t.txt
Tags sed shell-script