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

Signaler
-
Messages postés
29583
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
21 février 2021
-
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

Messages postés
29583
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
21 février 2021
7 033
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