Wenn man den output von mehreren Kommandos gemeinsam durch eine Pipe (|) senden will, muss man keine komischen Konstrukte mit dem Befehl cat bauen (kann man aber), sondern es reichen dafür geschweifte Klammern:
$ { echo 1; echo 2; echo 3 ; } 1 2 3 $ { echo 1; echo 2; echo 3 ; } | fgrep 3 3 $ { echo 1; echo 2; echo 3 ; } | fgrep 2 2 $ { echo 1; echo 2; echo 3 ; } | fgrep 1 1
Man kann anstelle der Semikolon (;) auch neue Zeilen beginnen. Wichtig ist, dass vor der letzten Klammer entweder eine neue Zeile oder eben ein Semikolon steht.