nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Problem z regexpem

Von: Piotr Hosowicz (adresat.nieprawidlowski@op.pl) [Profil]
Datum: 06.11.2009 17:30
Message-ID: <4AF44F2A.8040709@example.com>
Newsgroup: pl.comp.lang.perl
Witam Grupê,

Mam takowy problem. Muszê zapisywaæ pewne informacje z oznaczeniem
dok³adnie godziny i robiê to po prostu w pliku tekstowym pod Midnight
Commanderem (F9 -> Insert date time). Gdybym wiedzial, ze potem
wyci±gniêcie tych informacji bêdzie problemem to bym zrobil jaki¶
interfejs WWW i napisa³ co¶ w PHP. W PERLu nie jestem za mocny.

Ale do rzeczy. Plik wej¶ciowy jest mniej wiêcej taki:

--- odt±d
$ cat /home/phz/test/sprzyklad.txt
pi±, 6 lis 2009, 14:35:11
pi±, 6 lis 2009, 14:35:14 uwagi 1
pi±, 6 lis 2009, 14:35:19


pi±, 6 lis 2009, 14:35:29 uwagi 2
pi±, 6 lis 2009, 14:35:44


pi±, 6 lis 2009, 14:39:07
pi±, 6 lis 2009, 14:39:11 uwagi 3
--- dot±d

Skrypt ma mi wyodrêbniæ z tego tylko godziny i mnuty wraz z ew. uwagami,
czyli zxeby na wyj¶ciu dostaæ:

14:35
14:35 uwagi 1
14:35


14:35 uwagi 2
14:35


14:39
14:39 uwagi 3

Napisa³em skrypt który mi nie dziala:

#!/usr/bin/perl
use strict ;
while (<STDIN>){

my $line = $_ ;
$line =~ /^(.{5,6})(\d+)(.+)(.\d{4,4})(\,\s)(.{5,5})(.{4,4})(.*)$/ ;

if ($8){
print $6." (".$8.")\n" ;
}else{
print $6 ;
} ;

} ;

Wynik jego dzialania wskazuje na to, ¿e mimo wykonania w kolenym loopie
pêtli operacji =~ nie s± w ¿aden sposób resetowane $1, $2, $3,
$4 itd

Wynik jest taki:

$ cat /home/phz/test/sprzyklad.txt | ./test.pl
14:35 (uwagi 1)
14:35 (uwagi 1)
14:35 (uwagi 1)
14:35 (uwagi 1)
14:35 (uwagi 2)
14:35 (uwagi 2)
14:35 (uwagi 2)
14:35 (uwagi 2)
14:35 (uwagi 2)
14:39 (uwagi 3)

Bêdê bardzo wdziêczny za pomoc, sprawa jest prywatna, ale
do¶æ pilna dla
mnie.

--
Z cyklu "Uroki demokracji", czyli pytania i odpowiedzi w teledurniejach:
- Ile kó³ ma trójko³owiec?
- Dwa.
NP: Black Stone Cherry - Please Come In

[ Auf dieses Posting antworten ]

Antworten