dal link che ti ha postato PinguinoGoloso

Il segno "|" (e non "!") è una "pipe", vedi sotto.

" .....................
4.1 Che cosa sono e perché vorrai utilizzarle (|)
Le pipe ti permettono di usare (molto semplice, insisto) l'output di un programma come input di un altro.
4.2 Esempio: semplice pipe con sed
Questo è un modo molto semplice di usare le pipe.

ls -l | sed -e "s/[aeio]/u/g"


Qui, succede questo: prima è eseguito il comando ls, ed il suo output, invece di essere stampato, è inviato (mandato in pipe) al programma sed, che a sua volta, stampa quello che ha da stampare."