sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #00382
Re: Pipe ved hjaelp af filer
>Hej SSlug
>
>Jeg saa engang i en bog at det var muliget at pipe igennem en file i Unix.
>Forstaaet paa den maade at istedet for at outputte fra programmet blev
>laest paa std.output, saa kunne det laesse igennem en file/variable.
>
>Jeg har ogsaa en konkret problem stilling, nemlige rpm. Jeg vil
>foreksempel gerne opdate en raekke file ud fra et soege kriterie.
>
>$ ls | grep lib |rpm -U <filenavn>
>
>Problemet med rpm er at jeg ikke kan faa den til at bruge std.output som
>input, og jeg har heller ikke kunne finde nogle parameter det gjorde det
>muligt.
>
>Hilsen finnd
>
Jeg bruger ikke selv rpm, men mange programmer, som normalt kun bruger
navngivne filer som input, har en option til at angive at den skal bruge
stdin. Ellers kan man nogen gange bruge named pipes:
mkfifo testpipe
laver en named pipe ved navn testpipe - til forskel fra det tilsvarende
i OS/2 og WinNT kan den ses i filsystemet (med fx ls). Hvis et program
sender output til testpipe, blokerer det, indtil et andet program læser
fra den - med lidt held kan du bruge følgende:
ls | grep lib > testpipe &
rpm -U testpipe
- hvis det ellers er rigtigt antaget, at 'rpm -U testfile' læser det fra
testpipe, som du gerne ville have modtaget fra stdin. Det med 'heldet'
skyldes, at ikke alle programmer i alle UN*Xer synes at fifo'er er
rigtige filer - men det kan vel komme an på en prøve.
/jan
Follow ups