Beaucoup de commandes lisent par défaut l'entrée standard (mais pas toutes, exemples : cd, pwd, date...).
C'est le cas (au hasard) de grep, sed, tail, sort ... La plupart peuvent prendre un fichier comme argument. Par exemple grep bash file et grep bash < file sont équivalent; ou sed 's/sh/bash/' file et sed 's/sh/bash/' < file.
La redirection d'entrée prend tout son sens avec les pipes (tuyaux): la sortie standard d'une commande est raccordée à l'entrée standart de la suivante. Quelques exemples en vrac.
1 2 3
| ps aux | grep ^root #liste tous les processus de root
ls -1 | sed 's/htm$/html/' # liste les fichiers avec html à la place de htm
ps aux | grep "$(who am i | awk '{print $1}')" # liste tous les processus de l'utilisateur courant |
Il est aussi possible de transformer l'entrée standard en arguments de ligne de commande avec xargs.
ls *.sh | xargs chmod a+x # rend tous les fichiers sh du répertoire courant exécutables
Partager