Enviado em 17/08/2016 - 21:05h
Mauriciodez escreveu:
Pessoas ... seguinte
Funciona no bash, mas não altera o arquivo.
Funciona no bash, mas não altera o arquivo.
tentei assim e apagou o arquivo
Não funciona ... meu bash é 4.3.30
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 )"
__________________________________________________________________________________________Pessoas ... seguinte
Funciona no bash, mas não altera o arquivo.
cat arquivo.txt | paste -s | sed 's/a\tb/a\ttexto\tb/1; s/\t/\n/g'
Funciona no bash, mas não altera o arquivo.
awk '!encontrado && /b/ {print "teste" ; encontrado=1} 1' arquivo.txt tentei assim e apagou o arquivo
awk '!encontrado && /b/ {print "teste" ; encontrado=1} 1' > arquivo.txt Não funciona ... meu bash é 4.3.30
NLin=$(egrep -n -m1 'b' arquivo.txt|cut -d: -f1) | sed -i "${NLin}i\TEXTO INSERIDO" arquivo.txt 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
Marcelo Oliver