Remover números de um texto em local específico com awk/sed [RESOLVIDO]

1. Remover números de um texto em local específico com awk/sed [RESOLVIDO]

script  114
script114

(usa Outra)

Enviado em 22/12/2020 - 16:48h

Olá pessoal,

Eu preciso excluir partes específicas ao longo de um texto utilizando awk/sed. O arquivo tem a seguinte estrutura, segue parte abaixo:
(casaF_9987at7147:0.0019697157,casaM_9987at7147:0.0011628111,(papa8_9987at7147:0.0041285776,(((bot146_9987at7147:0.0104496806,((

Eu preciso apagar ao longo de todo arquivo apenas os números e o AT que ficam entre o _ e os : Mas, preciso manter o :

Precisaria que ficasse como abaixo, em todo o arquivo (aqui é apenas parte dele):
(casaF:0.0019697157,casaM:0.0011628111,(papa8:0.0041285776,(((bot146:0.0104496806,((

cat tree_file | awk '{gsub(/[_[:digit:], at]/, " " , $0); print}' > tree_file2, eu tentei assim. Mas, assim ele apaga todos os números do arquivo.

Alguém sabe como resolver?
Muito obrigada!!






  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 22/12/2020 - 17:32h

script114 escreveu:

Olá pessoal,

Eu preciso excluir partes específicas ao longo de um texto utilizando awk/sed. O arquivo tem a seguinte estrutura, segue parte abaixo:
(casaF_9987at7147:0.0019697157,casaM_9987at7147:0.0011628111,(papa8_9987at7147:0.0041285776,(((bot146_9987at7147:0.0104496806,((

Eu preciso apagar ao longo de todo arquivo apenas os números e o AT que ficam entre o _ e os : Mas, preciso manter o :

Precisaria que ficasse como abaixo, em todo o arquivo (aqui é apenas parte dele):
(casaF:0.0019697157,casaM:0.0011628111,(papa8:0.0041285776,(((bot146:0.0104496806,((

cat tree_file | awk '{gsub(/[_[:digit:], at]/, " " , $0); print}' > tree_file2, eu tentei assim. Mas, assim ele apaga todos os números do arquivo.

Alguém sabe como resolver?
Muito obrigada!!

Boa tarde Script114.
segue sugestão:
sed -ri 's/_[0-9]+at[0-9]+//g' arquivo.txt
Ou
gawk -i inplace '{gsub("_[0-9]+at[0-9]+:",":",$0);print}' arquivo.txt
Obs.: "-i inplace", altera o arquivo origem. Somente funciona com o "gawk"
Se o arquivo tem sempre a "mesma formatação":
awk -F '[_:]' '{for(n=0;n<=NF;n++) if(n%2==1) printf "%s:" ,$n}' arquivo.txt
Com muitos pipes..... rsrsrsrs
sed -r 's/_|:/\n&/g' arquivo.txt|grep '^[^_]'|paste -sd ''



______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________


3. Re: Remover números de um texto em local específico com awk/sed [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 22/12/2020 - 23:39h

Minha solução
tr ':' '_' < teste.txt | cut -d -f1,3 | tr '_' ':'
Q corresponde a substituir ":" por "_"(tr), depois dividir usando "_" como separador, para juntar os campos 1 e 3. A string vai usar "_" como separador, daí substitui "_" por ":"(tr, de novo)


4. Re: Remover números de um texto em local específico com awk/sed [RESOLVIDO]

script  114
script114

(usa Outra)

Enviado em 23/12/2020 - 09:33h

Problema resolvido!
Obrigada pelas respostas!


5. Re: Remover números de um texto em local específico com awk/sed [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 23/12/2020 - 17:58h

script114 escreveu:

Problema resolvido!
Obrigada pelas respostas!

Por nada...
Obrigado pela escolha da "melhor resposta"
Em tempo....
Simplificando a Expressão Regular.
sed -ri 's/_[[:alnum:]]+//g' arquivo.txt 


Att.: Marcelo Oliver








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts