Portál AbcLinuxu, 12. července 2025 18:58


Dotaz: Perl nacitani ze souboru

27.6.2007 12:14 Bart | skóre: 1
Perl nacitani ze souboru
Přečteno: 440×
Odpovědět | Admin
Zdravím měl bych malý dotaz. Potřebuji načítat data ze souboru kde mam uložený název a ip v tomto tvaru AP_name=169.254.1.1, každý záznam bude na novém řádku a tak aby řádky začínající # byly ignorovány. Prostě to potřebuji vytáhnout do proměnných zvlášť ip a zvlášť jméno a s nimi dále pracovat. Potřeboval bych nakopnout jak nejlíp na to.Moc díky za rady
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.6.2007 12:43 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
while (<>) {
  chomp;
  next if /^\s*#/;
  my ($name, $ip) = split /=/;
...
}
27.6.2007 14:08 Bart | skóre: 1
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Díky to vypadá ok akorát se mi nedaří načíst ty hodnoty do proměnných před cyklem otevřu soubor kde mam ap_name=169.254.1.1 ale hodnoty se neuloží. Sry jsem začátečník
wolf09 avatar 27.6.2007 14:18 wolf09 | skóre: 30
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
open (FILE,'filename') while ('<'FILE'>') { chomp; ($NAME,$ADDR)=split /=/; }

akorat z '<'FILE'>' musite odstranit ', protoze jinak se mi to nepodarilo napsat

vice : perldoc -f open
Zkusili jste to vypnout a znovu zapnout ?
27.6.2007 15:52 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
To se dělá takhle:
open (FILE,'filename')
while (<FILE>)
{
 chomp;
 ($NAME,$ADDR)=split /=/;
}
aneb debilní SGML a na něm založené antediluviální značkovací jazyky jako HTML, XML, XHTML a podobný odpad.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
wolf09 avatar 27.6.2007 16:03 wolf09 | skóre: 30
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Jak jsi to tam dostal ?

Me to porad hlasilo, ze znacka FILE je nepripustna, ani kdyz jsem zkusil dat znacky PRE
Zkusili jste to vypnout a znovu zapnout ?
27.6.2007 16:04 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
&lt;
27.6.2007 16:34 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
<pre>open (FILE,'filename')
while (&lt;FILE&gt;)
{
 chomp;
 ($NAME,$ADDR)=split /=/;
}</pre>
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
27.6.2007 22:39 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
-- Nezdar není hanbou, hanbou je strach z pokusu.
27.6.2007 15:50 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Díky to vypadá ok akorát se mi nedaří načíst ty hodnoty do proměnných před cyklem otevřu soubor kde mam ap_name=169.254.1.1 ale hodnoty se neuloží. Sry jsem začátečník
Co se neuloží, kdo se neuloží? Co se takhle napřed naučit aspoň základy perlu?
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
27.6.2007 16:12 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
to asi preto, že uvedený príklad číta zo STDIN. Pre čítanie zo súboru tu už úpravy odzneli. Hodnoty sa uložia do premenných, ktoré prestanú na konci cyklu existovať.
27.6.2007 15:13 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dnes nikdo python? :D
IFS==
while read name ip; do
  if [[ $name =~ ^[^#].* ]]; then
    echo "$name - $ip"
  fi
done < data.tmp
Pro starší verze bash nebo třeba sh by bylo potřeba adekvátně upravit tu podmínku.
27.6.2007 15:15 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Hele ono je koukám v titulku klíčové slovo perl :) Tak to bude asi tím... :D
27.6.2007 18:05 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Tak já to sem napíšu jen tak z tradice:
#!/usr/bin/python
for line in file('soubor.txt'):
    if line.startswith('#'): continue
    try:
        name, addr = line.split('=')
    except ValueError:
        continue
    name = name.strip()
    addr = addr.strip()
    print name, addr
27.6.2007 21:35 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
:)
28.6.2007 08:34 Bart | skóre: 1
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Díky všem za rady už jsem to rozchodil jak potřebuji, ale ještě mě trápí jedna věc pokud ten script pustím z ruky tak jede ok ale pokud cronem tak to vypadá jako by byl problém s proměnnýma, generuju soubor a mam jeho název složeny $nazev.png pokud to pustím z ruky tak se vloží správná hodnota proměnné $název pokud cronem tak to vyhodí jen .png. Pokud je to zbytečný dotaz tak sry jsem začátečník :) Díky za pomoc
28.6.2007 09:42 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Ook?
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
28.6.2007 09:49 Bart | skóre: 1
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
:) tím ok myslím že vloží hodnotu kterou by měl vložit pokud to pustím z cronu tak nevloží nic
28.6.2007 10:15 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Co se kam vloží nebo nevloží. Proboha, položte srozumitelnou otázku! Kde se ta proměnná bere? Kam se vkládá? Nejlépe s ukázkou kódu a chybovými výstupy. Pokládejte dotazy podle tohoto návodu!
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
28.6.2007 09:51 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
Počítej s tím, že se ti liší prostředí při spouštění z cronu a při ručním spouštění z konzole. Všechny proměnné je třeba si správně ve skriptu nadefinovat (nebo při jeho spouštění).
-- Nezdar není hanbou, hanbou je strach z pokusu.
28.6.2007 09:53 Bart | skóre: 1
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
takže je potřeba na začátek souboru deklarovat všechny proměnné jakých typů budou a mělo by to být ok?
28.6.2007 10:53 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
v prvom rade sem šupni kód, ako inicializuješ premennú $nazov, ako spúsťaš skript ručne, a ako z cron-u.
28.6.2007 11:57 Bart | skóre: 1
Rozbalit Rozbalit vše Re: Perl nacitani ze souboru
už to mám byla tam jedna chyba bylo třeba pevně určit cestu všem moc díky za rady

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.