mauricio@Phantom:~/área de trabalho$ sed -i "$"NLin"i\TEXTO INSERIDO" arquivo.txt | sed -i ''$NLin'i\TEXTO INSERIDO' arquivo.txt
sed: -e expressão #1, caractere 3: Há caracteres sobrando após o comando
mauricio@Phantom:~/área de trabalho$
pessoas ... fiquei ontem até altas horas tentando fazer essa joça funcionar e só consegui uma dor nas costas
Listeiro ... não vou testar o script pq não vou usar ele ... a intenção é fazer com uma linha de comando pq essa é só uma alteração q vou ter que fazer ... pode-se que no futuro apareça mais alterações pontuais !!!
__________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"
__________________________________________________________________________________________
Mauricio, boa noite.
Executei aqui, da forma que vc esta fazendo, e na 1ª vez, deu erro... NLin=$(egrep -n -m1 'b' arquivo.txt|cut -d: -f1) | sed -i "${NLin}i\TEXTO INSERIDO" arquivo.txt
A conclusão é a seguinte:
"Parece" que o comando SED (algumas vezes) não consegue interpretar a var "NLin".
Esse "PIPE" entre os dois comandos . . . Sinceramente essa sintaxe "me" é estranha . . .
Já que os comandos são independentes e não há redirecionamento.
Se existe a necessidade de fazer em uma linha, troque o pipe por ; (ponto e virgula) NLin=$(egrep -n -m1 'b' arquivo.txt|cut -d: -f1) ; sed -i "${NLin}i\TEXTO INSERIDO" arquivo.txt