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 linjen antalet matchande hängslen Rajendra_1510 Shell-programmering och Skript 3 10-07-2008 06:08
Split File Baserat på Radnummer Mönsterredigeraren shankster Shell-programmering och Skript 11 10-01-2008 10:49
Hitta Senaste förekomsten av ett annat mönster när ett mönster hittas. rakeshou Shell-programmering och Skript 1 07-23-2008 04:29
hitta duplicerade filer med storlek och hitta mönstermatchning och räkna Jerome Sukumar Shell-programmering och Skript 2 12-01-2006 04:20
Hitta mönster & prepending en rad med text kirrushna Shell-programmering och Skript 1 07-11-2006 03:20

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 10-10-2008
alirezan alirezan is offline
Registered User
  
 

Join Date: Aug 2008
Inlägg: 22
awk eller sed för att hitta närmaste mönster till en radnumret

hej stötarna,

Jag vill göra mönster som matchar med awk eller sed men jag vet inte hur. här är vad jag vill ha:

Jag har ett radnummer efter ett mönster som jag redan har hittat med hjälp av grep, och jag vet en förebild som "---" det händer ett par rader över att vissa radnummer. Jag vill skriva ut chunk mellan "---" och radnummer. Men här är haken. mönstret "---" kan vara mellan 1 och 20 rader ovan att radnummer och jag vet inte hur många rader ovan ... Dessutom är en annan fångst som kan "---" hända flera gånger i filen, men jag vill "närmast" att radnumret. Här är ett exempel:

Så här filen:

Citat:
---
aaa
bbb
ccc
ddd

---
aaaa
bbbb
cccc
dddd
eeee
FFFF
gggg
hhhh

---
jjj
dsf
qqq
www
eee
Jag hittade mönstret säga qqq stå på rad 20. Jag vill hitta den första --- innan mönstret qqq (linje 20) och jag vill skriva ut hela chunk från --- till den qqq mönstret skrivs ut.

Kan någon hjälpa mig ute behaga?
Tack
  #2 (permalänk)  
Old 10-11-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: februari 2007
Inlägg: 4.342
Borde vara något liknande:


Kod:
awk '
/---/{c=0}
{a[++c]=$0}
/qqq/{for(i=1;i<=c;i++){print a[i]}exit}
' file

Hälsningar
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 10:42.


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