/
Forside
/
Teknologi
/
Operativsystemer
/
Linux
/
Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Find en bruger
Stil et spørgsmål
Skriv et tip
Fortæl en ven
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
Linux
#
Navn
Point
1
o.v.n.
11177
2
peque
7911
3
dk
4814
4
e.c
2359
5
Uranus
1334
6
emesen
1334
7
stone47
1307
8
linuxrules
1214
9
Octon
1100
10
BjarneD
875
awk
Fra :
Jan Eliasen
Dato :
15-09-03 13:51
Niels Tolstrup (
15-09-2003
)
Kommentar
Fra :
Niels Tolstrup
Dato :
15-09-03 14:59
Hej Jan,
Jeg ændrede linien
> while ((getline < $1) > 0 )
til
fn = $1
while ((getline < fn) )
Det bevirker at getline bliver ved med at læse fra samme fil,
er det det du vil?
Venlig hilsen
Niels
Jan Eliasen wrote:
> Hejsa
>
> Jeg har et problem med awk som jeg ikke kan greje. Jeg vil gerne have en
> awk-kommando inde i et shell-script, og kommandoen skal egentlig ikke gøre
> andet end at tage et antal parametre. Hvis den sidste parameter er "felt"
> så skal en enkelt fil udskrives til standard-output og hvis den sidste
> parameter er "tabel" skal jeg gøre noget andet. Det virker så vidt at den
> første linie bliver udskrevet, men så stopper festen. Hvorfor kommer
> resten af linierne ikke? På forhånd tak.
>
> Jeg har et shell-script der ser sådan ud:
>
> #!/bin/sh
> skriv() {
> awk '
> {
> if ($NF == "felt") {
> while ((getline < $1) > 0 )
> print
> } else {
> printf "Tabeller\n";
> }
> }
> '
> }
>
> echo $* | skriv >> /tmp/datadic.$$
>
Klaus Alexander Seis~ (
15-09-2003
)
Kommentar
Fra :
Klaus Alexander Seis~
Dato :
15-09-03 15:35
Jan Eliasen skrev:
> while ((getline < $1) > 0 )
I awk-scripts henviser $1 til første "ord" på nuværende linje, og
da hele awk-scriptet er indkapslet i enkeltgnyffer, bliver $1 aldrig
opfattet som en shell-variabel.
<uafprøvet>
Prøv evt. at putte filnavnet i en variabel med "awk -v fn=$1", og
brug så fn i while-løkken i stedet for $1.
</uafprøvet>
// Klaus
--
><> unselfish actions pay back better
Søg
Alle emner
Teknologi
Operativsystemer
Linux
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177551
Tips :
31968
Nyheder :
719565
Indlæg :
6408843
Brugere :
218887
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2024 kandu.dk. Alle rettigheder forbeholdes.