The UNIX and Linux Forums  
Hej och välkommen från till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

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
hur man kan flytta filen pekaren till en viss linje i C user_prady High Level Programming 7 03-27-2008 12:32
återlämna föregående rad user_prady Shell-programmering och Skript 12 12-18-2007 07:37
hur man kan gå tidigare linje i vim useless79 UNIX för avancerade & Expertanvändare 2 09-16-2007 09:10
söka och hämta föregående rad i filen paulsew Shell-programmering och Skript 2 02-23-2007 08:04
Föregående dagens datum i Perl? rajus19 Shell-programmering och Skript 4 07-18-2006 01:40

 
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 01-24-2008
tqlam tqlam is offline
Registered User
  
 

Join Date: Jul 2004
Inlägg: 12
Perl att flytta pekaren till föregående rad i en txt-fil?

Jag har en textfil som har block av text. Varje block inleds med # # # och avslutas med End_ # # #.
Jag skrev ett perl skript för att söka ett snöre från linje 2 (ignorera alla rader börjar med # # #) av varje block
Om matchas, måste skriva ut det hela kvarteret. Enligt indatafilen i nedan, kommer den att skriva block # 02, # 04, # 05.
Här är min fråga, har jag inga problem att matcha SEARCH_STR, men en gång matchas, hur får jag gå tillbaka tidigare rader?
t.ex. i block # 02, motsvaras i linje 3, men jag måste skriva ut linjerna 1 & 2.

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

Mitt manus:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
#! / 46020/local/bin /perl -w
#
if ($ # ARGV! \u003d 0) (
print "Du måste ange ett sökvillkor. \ n";
exit;
)
my $ query \u003d $ ARGV [0];
my $ input \u003d "/ mypath / inputFILE.txt";
min $ line;
my $ tag \u003d 0;
my @ resultat \u003d ();

open (FILE, "<$ INPUT") or die "Kan inte öppna '$ input' fil: $!";
while ($ line \u003d <file>) (
next if ($ line \u003d ~ / ^ # [0-9] [0-9] .* - / | | $ line \u003d ~ / ^ \ s *$/);
if ($ line \u003d ~ / $ query / i) (
$ tag \u003d 1;
)
if ($ line \u003d ~ / ^ End_ # / & & $ tag \u003d\u003d 1) (
push (@ resultat, $ line) if ($ tag \u003d\u003d 1);
$ tag \u003d 0;
)
push (@ resultat, $ line) if ($ tag \u003d\u003d 1);
)
nära (FILE);
print "@ resultatet \ n";
exit;


Indatafilen:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
# 01 - block startlinjen här
Some text here
mer text här
fler linjer
fler linjer
fler linjer
End_ # 01

# 02 - block startlinjen här
Some text here
innehåller raden SEARCH_STR och något
fler linjer
fler linjer
End_ # 02

# 03 - block startlinjen här
Some text here
mer text här
fler linjer
fler linjer
fler linjer
End_ # 03

# 04 - block startlinjen här
Some text here
fler linjer
fler linjer
den SEARCH_STR är här och något
Some text here
fler linjer
fler linjer
fler linjer
End_ # 04

# 05 - block startlinjen här
Some text here
fler linjer
den SEARCH_STR är här och något
fler linjer
End_ # 05


# 06 - block startlinjen här
Some text here
mer text här
fler linjer
fler linjer
fler linjer
End_ # 06
 

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 03:19.


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