🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
5 messages
5 total messages Started by Ziemek Borowski Mon, 05 May 1997 09:48
trywialne zadanie: hosts 2 dns (dluzsze)
#229
Author: Ziemek Borowski
Date: Mon, 05 May 1997 09:48
34 lines
2073 bytes
przynam sie ze nie czuje sie sie zbyt pewnie zadajac to pytanie... 
(jako koder czy tym bardziej programista jestem zupelnym ignorantem) 
stoi przede mna nastepujace zadanie: 
napisas jakis programik konwerujacy /etc/hosts do plikow dns 

poczatkowo zrobilem to w okropnej mieszaninie bash, cat i awka... ale
nie spodobalo mi sie... ;-( wiec postatowilem to zrobic w perlu... 
i tutaj zaczyna sie moj problem... (to zreszta moj pierwszy dluzszy
niz linijka program w perlu ;-(

czy mozna (no poza jakas glupia konstukcja: 
<verb>
open (HOSTS,"/etc/hosts");
while(<HOSTS>){
next unless /^(\d+)\.(\d+)\.(\d+)\.(\d+)\s*(\w+)\.(\S*)(\s*)(\w*)/; 
</verb>)
w perlu stosowac w jakis sposob separatory pol (FS w awku) 
i to to najlepiej ,,podwojne'' tj. coby separatorem byla zarowno
spacja, tabulator (i ich zbitka) jak i kropka i co za tym idzie
,,identyfikatory pol'' typu $1 itp. (tj. w tym wypadku:
$[1-4] na IPv4 $5 na nazwe hosta a $6-do spacji na domene) 

bo odnosze wrazenie ze ten sposob powyzej powoduje obcinanie
,,symulowanych'' pol (tj. 
w named.hosts nie dosc ze nie laduja mi wszystkie pola jakie powinny
trafic to czesc hostow ma obciete lub poprzekrecane nazwy:
np. mam w /etc/hosts gdansk03  a w named.hosts gdan00 

mam nadzieje ze jasno sie wyslowilem... ;-) 
Ide. spac...  ;-) 

-- Ziemek Borowski 
-- Ziemek Borowski
http://www.digilab.com.pl/pl.comp.www/faq.htm
Re: trywialne zadanie: hosts 2 dns (dluzsze)
#230
Author: Ziemek Borowski
Date: Mon, 05 May 1997 07:06
13 lines
1072 bytes
On Mon, 5 May 1997, napisalem:

> przynam sie ze nie czuje sie sie zbyt pewnie zadajac to pytanie... 
> (jako koder czy tym bardziej programista jestem zupelnym ignorantem) 
> stoi przede mna nastepujace zadanie: 
> napisac jakis programik konwerujacy /etc/hosts do plikow dns 
>
jakby ktos biegly w pismie (sorry... perlu) chcial rzucic okiem na 
moje wypociny i powidziec gdzie tkwi blad...
to zapraszam:
http://www.digilab.com.pl/~ziembor/perl/

-- Ziemek Borowski
Re: trywialne zadanie: hosts 2 dns (dluzsze)
#231
Author: Artur Czechowski
Date: Mon, 05 May 1997 08:56
32 lines
1519 bytes
In pl.comp.lang.perl Ziemek Borowski <ziembor@digilab.com.pl> wrote:
 > czy mozna (no poza jakas glupia konstukcja: 
 [cut]
 > w perlu stosowac w jakis sposob separatory pol (FS w awku) 
Poczytaj manual do perlfunc i poszukaj opisu funkcji split.
A jak Ci się nie chce czytać manuala to zobacz to poczytaj poniższy kawałek:

#!/usr/bin/perl

open HOST,"/etc/hosts";
while (<HOST>) {
 chop;
 s/\t/ /g;
 s/ +/ /g;
 s/^ +//g;
 if (! ((/^#/)||(/^$/)) ) {
  @linia=split(/ /);
  for($i=1;$i<=$#linia;$i++) {
   if ($i==1) {
    print "$linia[$i]\t\tIN A\t$linia[0]\n";
   } else {
    print "$linia[$i]\t\tIN CNAME\t$linia[1]\n";
   }
  }
 }
}
close HOST;

Pozdrówka
-- 
Artur Czechowski, arturcz@cyf.gov.pl,  Instytut Energii Atomowej, Świerk
http://www.cyf.gov.pl/~arturcz/
Re: trywialne zadanie: hosts 2 dns (dluzsze)
#232
Author: Ziemek Borowski
Date: Mon, 05 May 1997 09:18
15 lines
1350 bytes
On 5 May 1997, Artur Czechowski wrote:

> In pl.comp.lang.perl Ziemek Borowski <ziembor@digilab.com.pl> wrote:
>  > czy mozna (no poza jakas glupia konstukcja: 
>  [cut]
>  > w perlu stosowac w jakis sposob separatory pol (FS w awku) 
> Poczytaj manual do perlfunc i poszukaj opisu funkcji split.
> A jak Ci się nie chce czytać manuala to zobacz to poczytaj poniższy kawałek:
kawalek wyglada zachecajaco... 
trzeba bedzie jeszcze tylko (na pierwszy rzut mego niedoswiadczczonego oka
pobisac rev.dns a tutaj glownie mnie awk/bash zawiod ;-) 
w kazdym badz razie za recepte i RTFman dzieki....

-- Ziemek Borowski
http://www.digilab.com.pl/pl.comp.www/faq.htm 
Re: trywialne zadanie: hosts 2 dns (dluzsze)
#233
Author: Piotr Piatkowski
Date: Tue, 06 May 1997 11:32
32 lines
2120 bytes
Ziemek Borowski <ziembor@digilab.com.pl> wrote:
: przynam sie ze nie czuje sie sie zbyt pewnie zadajac to pytanie... 
: (jako koder czy tym bardziej programista jestem zupelnym ignorantem) 
: stoi przede mna nastepujace zadanie: 
: napisas jakis programik konwerujacy /etc/hosts do plikow dns 

Zamiast grzebać się w /etc/hosts bezpośrednio, użyj funkcji 
gethostent() (man perlfunc) Oczywiście wcześniej musisz wyciągnąć 
sobie listę hostów, ale potem już łatwiej jest użyć gethostent, która
od razu wrzuca co trzeba do odpowiednich zmiennych.

: czy mozna w perlu stosowac w jakis sposob separatory pol (FS w awku) 
: i to to najlepiej ,,podwojne'' tj. coby separatorem byla zarowno
: spacja, tabulator (i ich zbitka) jak i kropka i co za tym idzie
: ,,identyfikatory pol'' typu $1 itp. (tj. w tym wypadku:
: $[1-4] na IPv4 $5 na nazwe hosta a $6-do spacji na domene) 

my @tab = split / \t\./;

powoduje podzielenie tekstu w $_ (jeżeli ma być co innego, można 
podać jako drugi argument) za pomocą separatorów zdefiniowanych jako 
wyrażenie reguralne podane po split. Czyli powyższe dzieli linijkę w 
miejscach gdzie są spacje, kropki, tabulatory, lub ich dowolna 
kombinacja. Później odwoływać się można przez $tab[0], $tab[1], 
etc...

: mam nadzieje ze jasno sie wyslowilem... ;-) 

Niespecjalnie :->  Ale ja chyba też niezbyt...

-- 
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads