The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
encontrar padrão, exclua acordo com padrão e linha acima e abaixo linha nickg Programação Shell Script e 4 01-29-2009 01:38
Extracto de texto padrão linha TehOne Programação Shell Script e 4 12-25-2008 01:25
Extracto de texto padrão linha TehOne Programação Shell Script e 3 10-15-2008 01:46
Extracto de texto padrão linha vampirodolce Programação Shell Script e 9 10-14-2008 12:17
extrair um determinado padrão de início e fim de uma linha manish205 Programação Shell Script e 7 02-07-2008 06:18

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-27-2009
TestTomas TestTomas is offline
Usuário
  
 

Join Date: May 2009
Posts: 2
sed: Encontre início do padrão e extrair o texto a fim de linha, incluindo o padrão

Este é o meu primeiro post, por favor, seja simpático. Tenho tentado google e ler vários tutoriais.

A tarefa em questão é a seguinte:

Arquivo de entrada input.txt (exemplo)

abc123defhij-E-1234jslo
456ujs-W-abXjklp

A partir deste processo é a tarefa para o grep-E-e-W-strings que são únicas e escrever um novo arquivo iniciando com a correspondência padrão (-E,-W-)

O resultado final deverá ser parecido com isto:

-E-1234jslo
-W-abXjklp

O mais próximo que tenho vindo a fazer é usar este código:


Código:
grep -e '-[EW]-' input.txt | sed 's/.*'-[EW]-'//'

A saída parecido com isto:

1234jslo
abXjklp

O problema é que isso não me dá o-E-e-W-que é parte de uma expressão regular. Acho que precisamos de uma maneira de colocar a correspondência em parte para a substituir parte do sed.

Agradecemos antecipadamente por qualquer ajuda.

Última edição por TestTomas; em 05/27/2009 10:33.. Motivo: rectificado erro ortográfico
  #2 (permalink)  
Old 05-27-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.131

Código:
sed '/-[EW]-/s/.*-[EW]-\(.*\)/\1/' input.txt

  #3 (permalink)  
Old 05-27-2009
edgarvm edgarvm is offline
Usuário
  
 

Join Date: May 2009
Lugares: 26
Tenho feito algumas modificações para sua solução, tente o seguinte:

Código:
grep -e '-[EW]-' input.txt | sed 's/^.*\(-[EW]-\)/\1/'

  #4 (permalink)  
Old 05-27-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.131
Citação:
Originally Posted by edgarvm View Post
Tenho feito algumas modificações para sua solução, tente o seguinte:

Código:
grep -e '-[EW]-' input.txt | sed 's/^.*\(-[EW]-\)/\1/'
Penso que não produz os resultados do OP é depois.
Também não há necessidade de usar 'grep' quando sed pode fazer o mesmo.
  #5 (permalink)  
Old 05-27-2009
TestTomas TestTomas is offline
Usuário
  
 

Join Date: May 2009
Posts: 2
Ele fez o truque, agradeço muito, muito

Edit:
Na verdade o puro sed-version 'fixa' as linhas com a correspondência padrão impresso, mas também a todas as linhas não correspondentes ao passo que a versão com grep funcionou perfeitamente

Última edição por TestTomas; em 05/27/2009 11:55.. Motivo: Extensão da informação.
  #6 (permalink)  
Old 05-27-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.131
Desculpe - tente o seguinte:

Código:
sed -n '/-[EW]-/s/.*-[EW]-\(.*\)/\1/p' input.txt

Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 03:08.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0