/
Forside
/
Teknologi
/
Operativsystemer
/
Linux
/
Nyhedsindlæg
Login
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Stil et spørgsmål
Skriv et tip
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 :
177822
Tips :
31980
Nyheder :
719565
Indlæg :
6410986
Brugere :
218912
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2026 kandu.dk. Alle rettigheder forbeholdes.