Lorsque j'envoie plusieurs commandes unix telles que grep, sed, tr, etc. j'ai tendance à spécifier le fichier d'entrée qui est traité par cat. Ainsi, quelque chose comme cat file | grep ... | awk ... | sed ...
.
Mais récemment, après avoir reçu quelques commentaires sur mes réponses indiquant qu'il s'agissait d'une utilisation inutile du chat, j'ai pensé poser la question ici.
Je me suis renseigné sur la question et je suis tombé sur Article de Wikipédia sur l'UUOC y L'utilisation inutile du prix du chat et il me semble que les arguments avancés s'inscrivent dans une perspective d'efficacité.
La question la plus proche que j'ai rencontrée est celle-ci : Est-ce un gaspillage que d'appeler un chat ? - mais ce n'est pas tout à fait ce que je demande.
Je suppose que le camp de l'UUOC suggère d'utiliser cmd1 args < file | cmd2 args | cmd3 ..
ou, si la commande comporte une option de lecture à partir d'un fichier, de transmettre le fichier en tant qu'argument.
Mais pour moi cat file | cmd1 ... | cmd2
semble beaucoup plus facile à lire et à comprendre. Je n'ai pas à me souvenir des différentes manières d'envoyer les fichiers d'entrée aux différentes commandes, et le processus se déroule logiquement de gauche à droite. D'abord l'entrée, puis le premier processus ... et ainsi de suite.
Est-ce que je ne comprends pas les arguments avancés pour justifier l'utilisation inutile du chat ? Je comprends que si je lance une tâche cron qui s'exécute toutes les 2 secondes et qui fait beaucoup de traitement, alors dans ce cas cat peut être un gaspillage. Mais sinon, quel est le consensus général sur l'utilisation de cat ?