Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: [Perl] wyciaganie danych z tekstu  (Przeczytany 4914 razy)

Gosik

  • Gość
[Perl] wyciaganie danych z tekstu
« dnia: 2013-03-03, 18:14:22 »
Witajcie!
Mam plik z danymi postaci:


itd.

Chciałabym wyciagnac z tego pliku tylko imie, nazwisko, ulice, nr_domu i nr_lok.

W tym celu probuje napisac skrypt, na poczatku chce wyciagnac tylko imie:
#!/usr/bin/perl

use strict;

open my $fh, '<', 'dane.txt' or die "open: $!";
chomp(my @data1 = <$fh>);
close($fh);


my  @x = grep {
    my $v=$_;
    $v =~ m/imie=.*/;
         
} @data1;

print @x;
Jednakze wyswietla mi wszystkie linie, ktore zawieraja imie.

Probowalam rowniez w taki sposob:

#!/usr/bin/perl

use strict;

my @dane;

open my $fh, '<', 'eksport_sou.xml' or die "open: $!";
chomp(my @data1 = <$fh>);
close($fh);

 my @tab = split/ /;

foreach (@tab){
 my $v =~/imie=.*/;
 push (@dane,$v);
}
 print @dane;
Jednakze w tej sytuacji nic nie jest wyswietlane.

Czy moglabym prosic o wskazowki jak poprawnie to powinnam uczynic?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
[Perl] wyciaganie danych z tekstu
« Odpowiedź #1 dnia: 2013-03-03, 22:15:33 »
Ale to tenteges wygląda jak XML... Może zatem coś do parsowania XML?
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Gosik

  • Gość
[Perl] wyciaganie danych z tekstu
« Odpowiedź #2 dnia: 2013-03-03, 22:42:05 »
Nie bardzo znam sie na parsowaniu XML i nie wiem czym to sie je.
Jaki jezyk programownai lub rogram nalezy do tego uzyc?

xavery

  • Gość
[Perl] wyciaganie danych z tekstu
« Odpowiedź #3 dnia: 2013-03-05, 13:28:29 »
Język jest moim zdaniem najlepszy z możliwych:) Do parsowania XML jest dużo mniej lub bardziej skomplikowanych modułów. Dla przykładu: XML:Parser, XML::MyXML, XML::Simple (do znalezienia oczywiście na www.cpan.org).
W omawianym przykładzie jednak może być kłopot z integralnością składniową XML. Być może prościej by było przeskanować tekst, przyrównać go do wzorców regularnych i wycinać żądane fragmenty tekstu (zmienna $& po operacji m///)