The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
So verschieben Sie Datei-Zeiger auf eine bestimmte Zeile in c user_prady High-Level-Programmierung 7 03-27-2008 12:32 AM
Rückkehr der vorherigen user_prady Shell Programmierung und Scripting 12 12-18-2007 07:37 AM
wie es weiter gehen vorherige Zeile in vim useless79 UNIX für Fortgeschrittene und Experten 2 09-16-2007 09:10 AM
Suchen und Abrufen von vorherigen Zeile in der Datei paulsew Shell Programmierung und Scripting 2 02-23-2007 08:04 AM
Vortag Datum in Perl? rajus19 Shell Programmierung und Scripting 4 07-18-2006 01:40 AM

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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 01-24-2008
tqlam tqlam is offline
Registrierte Nutzer
  
 

Join Date: Jul 2004
Beiträge: 12
Perl, wie Sie Zeiger auf die vorherige Zeile in einer txt-Datei?

Ich habe eine Text-Datei, die Textblöcke. Jeder Block beginnt mit # # # und endet mit End_ # # #.
Ich schrieb ein perl Skript für die Suche einen String aus Zeile 2 (ignoriert jede Zeile beginnt mit # # #) für jeden Block
wenn zutrifft, müssen, um die ganzen Block. Nach der Eingabedatei unten, es gibt Blocks # 02, # 04, # 05.
Hier ist meine Frage, habe ich keine Probleme den passenden SEARCH_STR, aber einmal mit, wie kann ich sie wieder zurück Richtung?
z. B. im Block # 02, mit der Linie 3, aber ich brauche, um Linien 1 & 2.

Vielen Dank im Voraus für jede Hilfe!

Mein Skript:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
#! / 46020/local/bin /perl -w
#
if ($ # ARGV! \u003d 0) (
print "Sie müssen die Suchkriterien. \ n";
exit;
)
my $ query \u003d $ ARGV [0];
my $ input \u003d "/ mypath / inputFILE.txt";
my $ line;
my $ tag \u003d 0;
my @ results \u003d ();

open (FILE, "<$ input") or die "Can't open '$ INPUT"-Datei: $! ";
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 (@ Ergebnisse, $ line) if ($ tag \u003d\u003d 1);
$ tag \u003d 0;
)
push (@ Ergebnisse, $ line) if ($ tag \u003d\u003d 1);
)
close (FILE);
print "@ Ergebnisse \ n";
exit;


Eingabedatei:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
# 01 - Block Startlinie hier
Text hier
mehr Text hier
mehrere Zeilen
mehrere Zeilen
mehrere Zeilen
End_ # 01

# 02 - Block Startlinie hier
Text hier
Diese Zeile enthält den SEARCH_STR und etwas
mehrere Zeilen
mehrere Zeilen
End_ # 02

# 03 - Block Startlinie hier
Text hier
mehr Text hier
mehrere Zeilen
mehrere Zeilen
mehrere Zeilen
End_ # 03

# 04 - Block Startlinie hier
Text hier
mehrere Zeilen
mehrere Zeilen
die SEARCH_STR hier ist und etwas
Text hier
mehrere Zeilen
mehrere Zeilen
mehrere Zeilen
End_ # 04

# 05 - Block Startlinie hier
Text hier
mehrere Zeilen
die SEARCH_STR hier ist und etwas
mehrere Zeilen
End_ # 05


# 06 - Block Startlinie hier
Text hier
mehr Text hier
mehrere Zeilen
mehrere Zeilen
mehrere Zeilen
End_ # 06
  #2 (permalink)  
Old 01-24-2008
Smiling Dragon's Avatar
Smiling Dragon Smiling Dragon is offline Forum Advisor  
Unorganisiert User
  
 

Join Date: Nov 2007
Ort: Neuseeland
Beiträge: 922
Post

Try something like this:

Code:
#!/46020/local/bin/perl -w
$/="\n\n";
while (<STDIN>) { if (/$ARGV[0]/) { print $_ }}

. / scriptname.pl SEARCH_STR </ mypath / inputFILE.txt
  #3 (permalink)  
Old 01-24-2008
KevinADC KevinADC is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Jan 2008
Beiträge: 731
Wenn Smiling_Dragons Vorschlag nicht funktioniert, können Sie die Tie:: File-Modul, mit dem Sie Lese-und Schreibzugriff auf eine Datei wie ein perl Array. Siehe den Tie:: File-Dokumentation für den Einsatz Details. Es ist auch ein Core-Modul, so sollten Sie es bereits installiert. Wenn du nach hinten.
  #4 (permalink)  
Old 01-25-2008
tqlam tqlam is offline
Registrierte Nutzer
  
 

Join Date: Jul 2004
Beiträge: 12
Möchte nur klarstellen, nach dem inputFILE.txt, wenn das Skript mit dem SEARC_STR wird PRINT # 02, # 04, # 05 Blöcke. zB Skriptname Suche.
Mein Code der Lage zu drucken und mit folgenden Zeilen bis zu End_ # # #, aber ich brauche eine Möglichkeit, Druck, bevor mit in diesen Block.

Danke.
  #5 (permalink)  
Old 01-25-2008
KevinADC KevinADC is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Jan 2008
Beiträge: 731
Ja, ich denke, wir beide verstehen, dass die Anforderung, und die beiden Vorschläge verwendet werden kann, zu tun, was Sie wollen. Wenn Sie mit Durchschleifen perl Arrays mit Indizes: $ array [n] dann mit Tie:: File wird ziemlich einfach, wenn Sie die Dokumentation lesen.

S_M Vorschlag liest die Datei in Stücke, nicht Zeile für Zeile, und sieht aus wie es sollte, obwohl die letzten Spiel scheitern könnte, wenn es nicht zwei Zeilenumbrüche am Ende der Datei. Sie müssen versuchen und sehen, oder vielleicht kann er klar, dass auf.
  #6 (permalink)  
Old 01-27-2008
Smiling Dragon's Avatar
Smiling Dragon Smiling Dragon is offline Forum Advisor  
Unorganisiert User
  
 

Join Date: Nov 2007
Ort: Neuseeland
Beiträge: 922
Zitat:
Zitat von KevinADC View Post
S_M Vorschlag liest die Datei in Stücke, nicht Zeile für Zeile, und sieht aus wie es sollte, obwohl die letzten Spiel scheitern könnte, wenn es nicht zwei Zeilenumbrüche am Ende der Datei. Sie müssen versuchen und sehen, oder vielleicht kann er klar, dass auf.
Ich denke, es wird in Ordnung mit einer normalen Datei Kündigung - Ich habe versucht es auf einem Zeilenvorschub und sah in Ordnung, aber ich havn't sehr viel in der Prüfung ist für Sie sicher,
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 05:07 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0