Mettre le résultat d'une commande dans un fichier texte sous linux

Maya -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour ,

Je cherche comment mettre le résultat d'une commande dans un fichier texte, et ceci en utilisant un programme en c .

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Bonjour,

    Il suffit de faire une redirection. Sache que tout programme peut écrire dans un terminal via deux sorties :
    1) la sortie standard (
    /dev/stdout
    ) : c'est dans ce flux qu'on écrit généralement les résultats du programme
    2) la sortie d'erreur standard (
    /dev/stderr
    ) : c'est dans ce flux qu'on écrit généralement les erreurs

    Selon le(s) flux à rediriger, tu n'utiliseras pas les mêmes opérateurs.

    De plus il faut choisir le comportement qui doit être suivi si le fichier destination existe déjà : faut il écrire à la place (
    >
    ) ou à la suite (
    >>
    ) de son contenu actuel ?

    Cela engendre les opérateurs suivants:
    • 1>
      (généralement noté
      >
      ) redirige la sortie standard et remplace le contenu du fichier destination ;
    • 1>>
      (généralement noté
      >>
      ) redirige la sortie standard et écirt à la suite du contenu du fichier destination ;
    • 2>
      (généralement noté
      >
      ) redirige la sortie d'erreur et remplace le contenu du fichier destination ;
    • 2>>
      (généralement noté
      >>
      ) redirige la sortie d'erreur et écirt à la suite du contenu du fichier destination ;


    Il est même possible de récupérer les deux flux (voir exemples)

    Exemples :

    ma_commande > out.txt
    ma_commande 1> out.txt 2> err.txt
    ma_commande 2> out_err.txt 1>&2


    Il suffit de remplacer dans les exemples ci-dessus ce qui permet d'exécuter ton programme écrit en C (typiquement
    ./mon_executable
    si tu es dans le répertoire de ton exécutable).

    Bonne chance
    0