The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
hitta mönster, bort med mönster och raden ovan och raden nedan nickg Shell-programmering och Skript 4 01-29-2009 01:38
Utdrag mönstret från Textrad TehOne Shell-programmering och Skript 4 12-25-2008 01:25
Utdrag mönstret från Textrad TehOne Shell-programmering och Skript 3 10-15-2008 01:46
Utdrag mönstret från Textrad vampirodolce Shell-programmering och Skript 9 10-14-2008 12:17
extrahera en allt börjar och slutar mönster från en linje manish205 Shell-programmering och Skript 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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-27-2009
TestTomas TestTomas is offline
Registered User
  
 

Join Date: maj 2009
Inlägg: 2
sed: Sök början av mönster och extrahera text till slutet av raden, inklusive mönster

Detta är mitt första inlägg, please be nice. Jag har försökt att Google och läsa olika guider.

Den uppgiften är:

Indatafil input.txt (exempel)

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

Från filen uppgiften är att den grep-E-och W-strängar som är unika och skriva en ny fil som börjar med den avstämda mönster (-E-,-W-)

Slutresultatet bör se ut så här:

-E-1234jslo
-W-abXjklp

Det närmaste jag har kommit för att göra detta är att använda denna kod:


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

Produktionen ser ut så här:

1234jslo
abXjklp

Problemet är att detta inte ger mig-E-och W-som är en del av det reguljära uttrycket. Jag antar att jag behöver ett sätt att sätta i matchade delvis i den ersätta en del av sed.

Tack på förhand för all hjälp.

Senast redigerad av TestTomas; 05-27-2009 at 10:33.. Orsak: Rättat stavfel
  #2 (permalänk)  
Old 05-27-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderator
  
 

Join Date: februari 2005
Ort: Boston, MA
Inlägg: 5.131

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

  #3 (permalänk)  
Old 05-27-2009
edgarvm edgarvm is offline
Registered User
  
 

Join Date: maj 2009
Inlägg: 26
Jag har gjort några ändringar i din lösning, prova detta:

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

  #4 (permalänk)  
Old 05-27-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderator
  
 

Join Date: februari 2005
Ort: Boston, MA
Inlägg: 5.131
Citat:
Ursprungligen postat av edgarvm View Post
Jag har gjort några ändringar i din lösning, prova detta:

Kod:
grep -e '-[EW]-' input.txt | sed 's/^.*\(-[EW]-\)/\1/'
Jag tror inte att det ger resultat att OP är efter.
Dessutom finns ingen anledning att använda "grep" när sed kan göra samma sak.
  #5 (permalänk)  
Old 05-27-2009
TestTomas TestTomas is offline
Registered User
  
 

Join Date: maj 2009
Inlägg: 2
Det gjorde susen, tack så mycket, mycket

Edit:
Faktiskt rena sed-version "fasta" i linje med matchande mönster men också skrivas ut alla icke matchande rader medan versionen med grep fungerade perfekt

Senast redigerad av TestTomas; 05-27-2009 at 11:55.. Motivering: Utökad informationen.
  #6 (permalänk)  
Old 05-27-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderator
  
 

Join Date: februari 2005
Ort: Boston, MA
Inlägg: 5.131
Tyvärr - prova detta:

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

Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 09:39.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0