filtragem de texto [RESOLVIDO]

1. filtragem de texto [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/03/2010 - 17:45h

galera, preciso fazer uma filtragem que para mim considero avançado d+ hehehe

quando vou listar os programas instalados no freebsd, aparece o seguinte


.
.
.
xcmiscproto-1.1.2
xcmsdb-1.0.1
xcursor-themes-1.0.1_1
xcursorgen-1.0.2
xdg-utils-1.0.2_4
xdpyinfo-1.0.3
xdriinfo-1.0.2
xdvik-tetex-22.84.16_1
xev-1.0.3
xextproto-7.0.5
xf86-input-keyboard-1.3.2_3
xf86-input-mouse-1.4.0_7
xf86-video-ati-6.12.4_1
xf86-video-intel-2.7.1_1
xf86-video-mach64-6.8.1_1
.
.
.

eu preciso pegar soh o nome do programa e nao sua versão

os programas podem ser separados por '-' as versões com '.'

a logica seria +- assim

excluir tudo que existir depois do primeiro '.' e tudo que existir antes do '.' ateh o primeiro '-'

ex:
xf86-input-keyboard-1.3.2_3
.....................^
....................1° ponto

xf86-input-keyboard-1.3.2_3
...................^
..................1° traço

o traço tbm tem que ser excluido, nesse caso iria sobrar somente isso:

xf86-input-keyboard




  


2. MELHOR RESPOSTA

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 15/03/2010 - 18:24h

Você pode tentar:

$ echo xf86-input-keyboard-1.3.2_3 | sed 's/\(.*\)-\(.*\)/\1/'
xf86-input-keyboard


3. Re: filtragem de texto [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/03/2010 - 02:44h

hmmm, legal xD

mas como funciona?? teria como explicar detalhadamente oq vc fez??

vlw


4. Re: filtragem de texto [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 16/03/2010 - 10:17h

Os parenteses em expressões regulares são utilizados sempre que se deseja marcar um padrão de pesquisa. O '\(.*\)' equivale a dizer:

"Marque a ocorrência de qualquer caractere '.' em qualquer quantidade '*'"

Já o '\x' é conhecido como referência retroativa. Em resumo ele faz referência a algo previamente casado (lembre-se dos parenteses!).

Isso 's/\(.*\)-\(.*\)/\1/' traduzido ficaria:

"Substitua qualquer ocorrência de caracteres antes e depois do último '-' pelo primeiro padrão casado."

Mais detalhes:

man sed (ou info sed)
man grep (ou info grep)



5. Re: filtragem de texto [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/03/2010 - 16:22h

vlw xD






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts