Q:

Grep com múltiplos parâmetros

Preciso selecionar as linhas de um arquivo que contém os caracteres | ou \
diff -y ontem.csv hoje.csv | grep -e "|" -e "\"

Como dizer pro grep me retornar as linhas que contém ou um pipe | ou uma barra \ ??

A:

Você pode usar a expressão regular [\|], veja só:
grep:
$ diff -y ontem.csv hoje.csv | grep '[\|]'

egrep:
$ diff -y ontem.csv hoje.csv | egrep '[\|]'

awk:
$ diff -y ontem.csv hoje.csv | awk '/[\\|]/{print}'

perl:
$ diff -y ontem.csv hoje.csv | perl -nle 'print if m{[\\|]}'

sed:
$ diff -y novas.csv entrada.txt | sed -n '/[\|]/p'

A:

Você pode usar os delimitadores [], que pegam todos os caracteres que estiverem dentro deles (a \ deve ser escapada, então fica \\):
grep -e "[\\|]" 

Veja exemplos desta regex aqui.

Conforme informado nos comentários, o grep também funciona sem a opção -e e sem precisar escapar a barra:
grep "[\|]" 

A:

Segue:
diff -y ontem.csv hoje.csv | grep "[|\]"

Veja mais em --> https://linux.die.net/man/1/grep
Vc também pode usar egrep --> https://linux.die.net/man/1/egrep

