Avatar billede dank Nybegynder
19. september 2003 - 14:19 Der er 10 kommentarer og
1 løsning

split? eller evt reg.expression?

Hey.. Jeg har følgende:

while( my $line = <FH> )  {
if ($line =~ /^\+/) {
  @a = split ':|\+|-',$line;
  $domain=$a[1]; $path=$a[6];
  print "\n\n$domain ---> $path\n";
}
}

De linier der smides til scriptet ser således ud:

+familien-abc.dk-:familien-abc.dk:512:507:/home/vpopmail/domains/familien-abc.dk:-::
+familienabc.dk-:familienabc.dk:512:507:/home/vpopmail/domains/familienabc.dk:-::

Det ønskede output af scriptet er således:

familien-abc.dk ---> /home/vpopmail/domains/familienabc.dk
familienabc.dk ---> /home/vpopmail/domains/familienabc.dk

Men med ovenstående script får jeg

familien
familienabc.dk ---> /home/vpopmail/domains/familienabc.dk

Problemet er nu at den første linie der fødes til scriptet ikke virker, da den indeholder bindestreg i domænenavnet.

Nogen der kan hjælpe med at rette split til? Eller skal der evt. bruges reg.expressions?
Avatar billede mfalck Praktikant
19. september 2003 - 14:26 #1
hvad med at splitte på ":" ? og så trimme for unødige tegn ?
Avatar billede erikjacobsen Ekspert
19. september 2003 - 14:27 #2
@a = split ':|\+',$line;

burde klare det. Men er der så problemer med "-"-er længere henne?
Avatar billede mfalck Praktikant
19. september 2003 - 14:29 #3
jeg tænker på noget i stil med

@a = split ':',$line;
$domain=$a[1]; $path=$a[6]; #tallene skal nok rettes.
$domain =~ s/([1-9a-z.-]*)/($1)/;
$path=~ s/([1-9a-z.-]*)/($1)/;
Avatar billede mfalck Praktikant
19. september 2003 - 14:30 #4
hov der skal ikke - med i reg.exp
Avatar billede mfalck Praktikant
19. september 2003 - 14:32 #5
sådan:
$domain =~ s/([1-9a-z.]*)/$1/;
$path=~s/([1-9a-z.]*)/$1/;
Avatar billede mfalck Praktikant
19. september 2003 - 14:33 #6
argh

$path =~ s/([1-9a-z.\/]*)/$1/;
Avatar billede erikjacobsen Ekspert
19. september 2003 - 14:33 #7
Nå ja, nu husker jeg hvorfor. Vi tog "-" for at undgå det irriterende "-"
for enden af "familienabc.dk-".

Du kunne også overveje, dank, om du ikke kunne få et bedre format på dine data ;))
Avatar billede mfalck Praktikant
19. september 2003 - 14:36 #8
hvis der altid er et "-" kan man måske klare det med en chop kommando ?
Avatar billede dank Nybegynder
19. september 2003 - 15:09 #9
ups.. var lige væk.. jeg prøver lige de forskellige forslag.

erikjacobsen> Ja.. Det er meningen der skal være et bedre format. Derfor skal samtlige domæner/emails læses konverteres til SQL. Det er faktisk dette scripts eneste formål. :)
Avatar billede dank Nybegynder
19. september 2003 - 15:17 #10
Fik det til at virke.. opretter i sva?r
Avatar billede mfalck Praktikant
19. september 2003 - 15:18 #11
ok :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging