Pip er et verktøy som kan gjøre noen program et filter.
Noen programmer (ofte de fra et ikke-Unix bakgrunnen) ikke leser inndata fra standard inn, og heller skrive til stdout. I stedet, de gjøre deg spesifisere en "input-fil" og en "output file 'på kommandolinjen. Minst de fleste Unix-programmer som gjør dette lar deg bruke den spesielle filnavn "-" til å bety stdin eller stdout, men det er noen programmer som ikke anerkjenner denne konvensjonen.
Noen ganger er dette av tekniske årsaker, fordi inngangs må være seekable. Noen ganger er det fordi forfatteren ikke trodde det ville være nyttig, og er trolig en Pascal sympatisør. Men i alle tilfelle, er det ikke irriterende for å kunne bruke slike programmer i rørledninger.
Pip fikser dette problemet. Det brytes slike programmer, og lar deg gi filnavnene til '-' som du ville gjort med alle andre. Men pip vet ikke om "-" skal bety stdin eller stdout, så du må fortelle det med -i, -o, eller -B brytere. Pip gir også -I og -O for programmer som kan bruke standard inn og standard ut, men krever at de skal være seekable.
For eksempel, for å omdanne programmet "dumme", som tar en inngang og en utgang filnavn filnavn, for å være et filter:
pip -io dum - -
Til rør et C-program gjennom kompilator (hvis noen grunn du trengte å gjøre noe slikt):
pip -io gcc -.c -o -
I dette tilfellet vil den midlertidige inngangs filnavnet gitt til gcc ende i '.C'. Og for å rør litt tekst gjennom emacs, noe som gir brukeren mulighet til å redigere det:
pip -B emacs -
Et eksempel på -I bryteren, for å bufre stdin til en fil slik at dvips er "filter" -modus (som forventer en seekable stdin) kan bruke det:
pip -Jeg dvips -f
Se manualsiden for mer.
pip_ (la) tex
Selv pip er generell nok for de fleste bruksområder, vil det ikke håndtere TeX og LaTeX riktig. For dette er det et eget program pip_latex som er en wrapper for LaTeX. Det aksepterer LaTeX kilde på standard input og skriver en DVI-fil til standard ut - eller du kan installere det som pip_tex hvis du ikke bruker LaTeX. Den prøver å gjøre noe fornuftig med TeX største feilmeldinger - se dokumentasjonen på begynnelsen av skriptet. For eksempel:
cat filename.tex | pip_latex | pip -i xdvi -
pip_latex2html
Dette er en spesial wrapper for latex2html program. Den leser LaTeX kilde fra standard inn og prøver å konvertere den til HTML skrevet til stdout.
Pip versus / dev / stdin og / dev / stdout
På de fleste Unices, kan du ofte få samme effekt som pip ved å bruke / dev / stdin og / dev / stdout (takk til Daniel Biddle for å peke ut dette). Men selv om dette fungerer for programmer som leser og skriver sekvensielt, og får du normalt rørledningen latskap i slike situasjoner, vil det ikke fungere for de som ønsker å gjøre tilfeldig tilgang filoperasjoner på deres inngang eller utgang.
Prøv å kjøre programmet med / dev / stdin eller / dev / stdout; hvis den svikter i noen merkelige måte, prøve på nytt med pip, som skal jobbe med omtrent alt. Også pip fungerer på Windows, hvor / dev / std * ikke eksisterer.
Krav:
Prog.varedetaljer:
Kommentarer ikke funnet