shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: [Shell] - Ajuda


From: phfbettega
Subject: Re: [shell-script] Re: [Shell] - Ajuda
Date: Sun, 31 Jul 2016 21:12:24 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

Olá Itamar, mas assim o awk não imprime o separador nas linhas editadas.

echo '"2885" "2" "50" "ALO" "2" "3"
"2885" "2" "50" "ALO GENTE" "2" "3"
"2222" "2" "90" "oioi" "1" "99" "2"'|
awk -F '" "' '$5=="2"{sub("2","3",$5)};1'
"2885 2 50 ALO 3 3"
"2885 2 50 ALO GENTE 3 3"
"2222" "2" "90" "oioi" "1" "99" "2"

Eu inclui o loop do for pra imprimir um número variável de campos
e também imprimir o separador entre os campos.
Abraços Paulo Bettega

On 31-07-2016 08:18, address@hidden [shell-script] wrote:


Caro Paulo
Você não precisa fazer esse bloco for no awk

Experimente trocar seu código em awk por isso:

awk -F '" "' '$5=="2"{sub("2","3",$5)};1'


Caro Vinicius
É apenas no campo 5 mesmo?
Reparei que a última linha tem 7 campos e os 2 primeiros tem 6 campos.

Se acaso for o penúltimo campo o trecho em awk pode ser então

awk '$(NF-1)=="\"2\"" {sub("2","3",$(NF-1))};1'


Caro Victor
Essa é uma sugestão baseado no seu sed

sed -r 's/(("[^"]*" ){4}")2(" ".*")/\13\3/g'


Espero que as sugestões ajudem
[]'s
Itamar


--------------------------------------------------------------------------------------------------------------
Enviado por: address@hidden
--------------------------------------------------------------------------------------------------------------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]