|
| Mangler shell funktion til parserering af ~ Fra : Jan Birk |
Dato : 18-02-09 16:11 |
|
Forestiller mig noget ala
parsefile(filnavn.csv) {
DELIMITER=,
TEKST_SURROUND="
INPUT=filnavn.csv
....
....
arbejde arbejde ...
output..
return array FELT[nr]
}
Findes der mon noget færdigt i den stil?
Pft
/Jan
| |
Peter Mogensen (18-02-2009)
| Kommentar Fra : Peter Mogensen |
Dato : 18-02-09 17:17 |
|
Jan Birk wrote:
> Forestiller mig noget ala
>
> parsefile(filnavn.csv) {
> DELIMITER=,
> TEKST_SURROUND="
> INPUT=filnavn.csv
> ...
> ...
> arbejde arbejde ...
> output..
> return array FELT[nr]
> }
>
>
> Findes der mon noget færdigt i den stil?
>
man Text::ParseWords
| |
Jan Birk (18-02-2009)
| Kommentar Fra : Jan Birk |
Dato : 18-02-09 18:17 |
|
> man Text::ParseWords
Tak, men er det nu også en shell ting? Min shell (bash) siger jo bare;
----
jb@jb-laptop $ man Text::ParseWords
No manual entry for Text::ParseWords
----
Jeg er ikke familiær med perl, hvad det jo ligner. Og jeg har ikke perl
der hvor jeg skal bruge scriptet
Men hvis jer tager fejl, må jeg jo blive "lært" og betale lære penge
/Jan
| |
Peter Mogensen (18-02-2009)
| Kommentar Fra : Peter Mogensen |
Dato : 18-02-09 20:04 |
|
Jan Birk wrote:
>> man Text::ParseWords
>
> Tak, men er det nu også en shell ting? Min shell (bash) siger jo bare;
> ----
> jb@jb-laptop $ man Text::ParseWords
> No manual entry for Text::ParseWords
> ----
> Jeg er ikke familiær med perl, hvad det jo ligner. Og jeg har ikke perl
> der hvor jeg skal bruge scriptet
Ahh... bummer...
> Men hvis jer tager fejl, må jeg jo blive "lært" og betale lære penge
Nej, du tager ikke fejl. Jeg tog bare chancen og satsede på at du var
parat til at skrive "perl -e" i dit shell-script
| |
Michael Rasmussen (18-02-2009)
| Kommentar Fra : Michael Rasmussen |
Dato : 18-02-09 18:26 |
|
On Wed, 18 Feb 2009 18:16:44 +0100
Jan Birk <jan.birk@ivalid.domain.null> wrote:
> No manual entry for Text::ParseWords
perldoc Text::ParseWords
> Jeg er ikke familiær med perl, hvad det jo ligner. Og jeg har ikke perl
> der hvor jeg skal bruge scriptet
>
Et Unix eller Unix lignende OS uden Perl!
Det vil jeg gerne høre mere om, for et sådan er jeg ikke støt på siden
begyndelsen af 1990'erne.
--
Hilsen/Regards
Michael Rasmussen
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.
| |
Michael Rasmussen (18-02-2009)
| Kommentar Fra : Michael Rasmussen |
Dato : 18-02-09 19:45 |
|
On Wed, 18 Feb 2009 19:00:34 +0100
Jan Birk <jan.birk@ivalid.domain.null> wrote:
>
> Men hvis det er nemmere at bruge perl, så må jeg jo igang. Havde dog
> håbet på et shell script.
Nu er shell scripts jo ikke konstrueret med dette formål; det var jo
netop derfor, Larry Wall opfandt Perl
Findes der Python eller PHP installeret på dyret?
Eller lex, bison og yacc?
--
Hilsen/Regards
Michael Rasmussen
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.
| |
Klaus Alexander Seis~ (19-02-2009)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 19-02-09 01:27 |
|
Jan Birk skrev:
> Forestiller mig noget ala
>
> parsefile(filnavn.csv) {
> DELIMITER=,
> TEKST_SURROUND="
> INPUT=filnavn.csv
> ...
> ...
> arbejde arbejde ...
> output..
> return array FELT[nr]
> }
>
>
> Findes der mon noget færdigt i den stil?
Du burde kunne komme en del af vejen med awk.
Fx
awk -F, '{print $2}'
for at vise felt nummer to i en kommaopdelt fil.
Hvis du ikke ønsker at benytte nogle externe programmer overhovedet,
men udelukkende sh, kan man måske lege med IFS:
#!/bin/sh
oldIFS="${IFS}" ; IFS=',
'
while read felt1 felt2 resten
do
echo "${felt2}"
done
IFS="${oldIFS}"
# eof
eller noget i den retning.
Mvh,
--
Klaus Alexander Seistrup
http://klaus.seistrup.dk/
| |
Jan Birk (19-02-2009)
| Kommentar Fra : Jan Birk |
Dato : 19-02-09 08:21 |
|
> Hvis du ikke ønsker at benytte nogle externe programmer overhovedet,
> men udelukkende sh, kan man måske lege med IFS:
Jo det gør ikke noget;
>
> #!/bin/sh
>
> oldIFS="${IFS}" ; IFS=',
> '
> while read felt1 felt2 resten
> do
> echo "${felt2}"
> done
> IFS="${oldIFS}"
>
> # eof
>
> eller noget i den retning.
Det ser fint ud. Men det håndterer ikke f.eks. kommaer i tekstfelter
f.eks. "teskst , , , tekst"
/Jan
| |
Klaus Alexander Seis~ (19-02-2009)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 19-02-09 10:53 |
|
Jan Birk skrev:
> Det ser fint ud. Men det håndterer ikke f.eks. kommaer i
> tekstfelter f.eks. "teskst , , , tekst"
Korrekt, så skal man have fat i andre metoder. Python har et
csv-modul der kan tage hånd om den slags:
· http://docs.python.org/library/csv.html
Mvh,
--
Klaus Alexander Seistrup
http://klaus.seistrup.dk/
| |
Jan Birk (19-02-2009)
| Kommentar Fra : Jan Birk |
Dato : 19-02-09 08:23 |
|
Tak til alle.
Det ser ud som om jeg må have perl ind på maskine og bruge det.
/Jan
| |
Frank Damgaard (19-02-2009)
| Kommentar Fra : Frank Damgaard |
Dato : 19-02-09 13:50 |
| | |
|
|