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

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

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


From: Vinicius Xavier
Subject: Re: [shell-script] [Shell] - Ajuda
Date: Sun, 31 Jul 2016 02:30:49 +0000 (UTC)

Boa noite pessoal,

Paulo dessa forma se eu tiver outro campo sem ser o quinto com o valor 2, ele troca para 3.

No caso abaixo, ele trocou o ultimo campo da ultima linha.
cat texto.txt 
"2885" "2" "50" "ALO" "2" "3"
"2885" "2" "50" "ALO GENTE" "2" "3"
"2222" "2" "90" "oioi" "1" "99" "2"

cat texto.txt | sed 's/"2"/"3"/2'
"2885" "2" "50" "ALO" "3" "3"
"2885" "2" "50" "ALO GENTE" "3" "3"
"2222" "2" "90" "oioi" "1" "99" "3"

Agora da forma do Victor funcionou

sed -r "s/(^\".*\" \".*\" \".*\" \".*\" \")2(\" \".*\")/\13\2/g" texto.txt 
"2885" "2" "50" "ALO" "3" "3"
"2885" "2" "50" "ALO GENTE" "3" "3"
"2222" "2" "90" "oioi" "1" "99" "2"

Victor, poderia me explicar, ou indicar um site com explicação da regex?

Obrigado aos dois.

Att.,
Vinícius Xavier da Silva



Em Sexta-feira, 29 de Julho de 2016 13:06, "Victor Salustrino Bezerra address@hidden [shell-script]" <address@hidden> escreveu:


 
Encontrei esta solução, mas acho que ainda dá para melhorar o trecho antes do "2" para ficar menor. Deste jeito já está funcionando mas o arquivo tem que estar no formato exato que você mostrou. Coloquei o conteúdo no arquivo teste.txt e executei o seguinte comando:

sed -r "s/(^\".*\" \".*\" \".*\" \".*\" \")2(\" \".*\")/\13\2/g" teste.txt

espero ter ajudado!

Em 29 de julho de 2016 10:33, Vinicius Xavier address@hidden [shell-script] <address@hidden> escreveu:
 
Bom dia pessoal,

Poderiam dar uma ajuda nesse caso?

Como alterar o valor 2 para 3 em determinada campo? Somente para esse campo, no caso abaixo o campo 5.

Entrada:
"2885" "2" "50" "ALO" "2" "3"
"2885" "2" "50" "ALO GENTE" "2" "3"

Saída
"2885" "2" "50" "ALO" "3" "3"
"2885" "2" "50" "ALO" "3" "3"

Att.,
Vinícius Xavier
 



--
Victor Salustrino Bezerra



reply via email to

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