Vraag & Antwoord

OS Linux

[bash] output prog opscherm wegschrijven naar file?

Anoniem
water
6 antwoorden
  • Hoe kan ik de output van een progje op mijn scherm in console wegschrijven naar een file? Ik vermoedt dat het iets is als:

    [code:1:bdd4d26caf]
    programmaatje | echo bla bla >> /waar/ik/maar/wil/wegschrijffile
    [/code:1:bdd4d26caf]

    Klopt dit idee een beetje, en wat moet er bij bla bla staan?
  • Voor zover ik als leek weet, moet dit bijvoorbeeld genoeg zijn:

    [quote:99d83f076a]
  • Hierbij is ut een willekeurig programma?

    (kan het nu even niet proberen)
  • JA!

    Jij gebruikt 2 dingen, pipes ( | ) en redirection ( < )

    M.b.v. van pipes koppel je de output van het ene programma aan de input van het andere programma. Bijvoorbeeld [code:1:49a14490d6] ls | grep bak [/code:1:49a14490d6]

    De output van ls (de inhoud van een directory) wordt gekoppeld aan grep, hiermee kun je p een patroon zoeken. De input van grep is dus de hele listing van het ls commando en daar zoekt hij op alle bestanden met de naam bak.

    Redirection wil zeggen dat je iets gaat omleiden. Dit kan met STDIN, STDOUT en STDERR (standard Input, standard Output en standard Error). Een voorbeeldje, als je startx [/out] intypt, start X op. X produceert echter ook foutmeldingen, stel dat die niet zo kritiek is en je toch een x voor je neus ziet, wil je eventuele foutmeldingen wel weten. Wat ik dan b.v. doe is het volgende in te typen. [code] startx 2>/debug.txt [/code] Nu leid je de STDERR (is code 2 in Unix, STDIN is 0, STDOUT is 1) van het startx commando om naar de file debug die in je root staat.
    Zo, hopelijk weet je nu genoeg om het zelf uit te vissen :D
  • [quote:a7d9c538eb="water"]Hoe kan ik de output van een progje op mijn scherm in console wegschrijven naar een file? Ik vermoedt dat het iets is als:

    [code:1:a7d9c538eb]
    programmaatje | echo bla bla >> /waar/ik/maar/wil/wegschrijffile
    [/code:1:a7d9c538eb]

    Klopt dit idee een beetje, en wat moet er bij bla bla staan?[/quote:a7d9c538eb]

    Het idee zelf is in de richting maar klopt niet. Je hebt het proggie 'tee' nodig (man tee dus om te zien wat het precies doet)
    [code:1:a7d9c538eb]
    programmaatje | tee mylisting
    [/code:1:a7d9c538eb]
    doet de truc.
    Je output komt nu zowel op het scherm als in het file mylisting terecht.
    Pas echter op:
    als je bv.
    [code:1:a7d9c538eb]
    ls
    [/code:1:a7d9c538eb]
    doet krijg je een listing in kolommen van de stuff in de huidige directorie.
    als je echter
    [code:1:a7d9c538eb]
    ls | tee mylisting
    [/code:1:a7d9c538eb]
    doet, komen alle files/dirs onder elkaar te staan, zowel in de file mylisting als op het scherm.
    Nu is dus
    [code:1:a7d9c538eb]
    ls -C | tee mylisting
    [/code:1:a7d9c538eb]
    een verstandiger opdracht. Het uitpuzzelen hiervan in 'man bash' laat ik graag aan je over :D
  • [quote:127b421f83="water"]Hierbij is ut een willekeurig programma?

    (kan het nu even niet proberen)[/quote:127b421f83]

    ut is het commando voor de game Unreal Tournament :)

    Ik kwam BTW ook nog achter een handig optie, namelijk sort.
    Kun je de namen, woorden in een txt file op alphabet ed laten sorteren, bijvoorbeeld met sort /home/marce/utoutput > utoutputsorted
    Wisten jullie misschien al maar ik vond het wel ff het vermelden waard iig.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.