arquivo [RESOLVIDO]

1. arquivo [RESOLVIDO]

Carol Tineo
Carol777

(usa Slackware)

Enviado em 05/01/2009 - 11:05h

Olá pessoal, tenho um arquivo com uma coluna contendo números e cidades, eu queria tirar o espaço em branco que existem nos nomes de cada cidade, por exemplo: 2504 NOVA YORK , ficaria assim: 2504 NOVAYORK, isso mantendo o espaço que existe entre o numero e a cidade e também fazer com que o arquivo inteiro fique de A a Z e a a z, isso mantendo os números que existem na frente das cidades, e tirando somente caracteres inválidos como por exemplo:

1 DE 19801
1 0177 OSLO
1 ----------------
1 xxxxxxxxxxx
1 1249-061 LISBOA

nesse caso removendo tudo, exceto na utima linha, que ficaria assim: 1 LISBOA

alguem poderia me ajudar?

Muito Obrigada!

Carol


  


2. Re: arquivo [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 05/01/2009 - 11:24h

Sinceramente fora a parte de "juntar" os nomes das cidades, ex.: São Paulo = SãoPaulo, não entendi nada.

O que vc se refere aqui "também fazer com que o arquivo inteiro fique de A a Z e a a z" é trocar letras maiusculas por minusculas? Ou colocar uma primeira coluna e de linha a linha ir adicionando A, B, C.... x, w, z? assim:
A 192894 SaoPaulo
B 234556 NovaYork
C 134553 etc
ou ainda, organiza-los em ordem alfabetica? de "A a Z" e depois de "a a z"?

outra coisa, do jeito que vc esta fazendo não existe como remover as linhas! o que vc esta usando como parametro para comparar se um determinado dado é valido ou não? no seu exemplo:
"
1 DE 19801
1 0177 OSLO
1 ----------------
1 xxxxxxxxxxx
1 1249-061 LISBOA

nesse caso removendo tudo, exceto na utima linha, que ficaria assim: 1 LISBOA"

Por que só Lisboa ficaria? até da para entender os: xxxx e ---- sair, mas e Oslo, cidade da Noruega? e DE pode ser abreviatura de deutschland (Alemanha).

Um meio seria tirar tudo que é invalido ---- xxx, wwwww, yyyyy 0-0-0-0-0-, etc. etc, e depois na mão vc ver o que é dado valido ou não, ou arrumar um outro arquivo para comparação.



3. Re: arquivo [RESOLVIDO]

Carol Tineo
Carol777

(usa Slackware)

Enviado em 05/01/2009 - 11:51h

oque preciso é isso:
o sed para deixar minúsculos os caracteres

eliminar números desnecessários

eliminar espaços duplos


então analisar as linhas procurando por campos para serem unidos como new york
uniria e então finalizaria

entendeu?


4. Re: arquivo [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 05/01/2009 - 14:18h

Desculpa, mas para falar a verdade não me fez muito sentido, embora acho que entendi o que vc queria, e acredito que isto te ajudará.

awk '$2 ~ "[0-9]" {print}' arquivo | tr '[:upper:]' '[:lower:]'| awk '{print $1" " $2" "$3$4$5}'

resumindo: o primeiro awk se a segunda coluna começa com numeros, excluindo assim o xxx, ---, etc, segunda parte tr, troca maiuscula por minuscula, e a terceira parte este segundo awk tira o espaço em branco da cidade.

qualquer coisa responde ai, que eu vejo se consigo fazer algo diferente


5. Errata

nelio
neliobjr

(usa Red Hat)

Enviado em 05/01/2009 - 14:28h

Assim ficará mais legivel, tirando o ultimo awk.:

awk '$2 ~ "[0-9]" {print $1" "$2" "$3$4$5}' arquivo | tr '[:upper:]' '[:lower:]'

passou batido.


6. Re: arquivo [RESOLVIDO]

Carol Tineo
Carol777

(usa Slackware)

Enviado em 05/01/2009 - 15:44h

Muito Obrigado Nelio, deu certo :)


7. Re: arquivo [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 05/01/2009 - 16:04h

Que bom!

Por nada.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts