標準入力にファイルの内容を流すためだけにcatを使うのは、1994年頃から "Useless use of cat" (UUoC) として知られています (出典とされているメールスレッドのアーカイブ)。本家 Stack Overflow にも「この無駄なcatには本当に意味が無いのか?」という趣旨の質問があります。この回答ではこれらを参考に利点と欠点を挙げてみます。 cat FILENAME | grep "PATTERN" の利点 処理の流れが読みやすいことがあります。どこがファイル名なのかを考えなくて済みます(たとえば grep abc defと書いたときを想像してください)。また cat a.txt | grep foo | wc -l のようにパイプによる処理フローが続く場合、処理の流れが左から右に読めます。 この点に関して、リダイレクションを上手く使えばcatを使わなくても同様の
![grepコマンドでのファイル指定について](https://cdn-ak-scissors.b.st-hatena.com/image/square/f6bc393cd0b6bd2196935e603c5d031bd6ca6699/height=288;version=1;width=512/https%3A%2F%2Fcdn.sstatic.net%2FSites%2Fja%2FImg%2Fapple-touch-icon%402.png%3Fv%3D1cfb10b305ca)