Elas não são expressões, são nomes de arquivos para arquivos produzidos da seguinte forma:
printenv | sort > printenv.sorted
set | sort > set.sorted
Isso não está claro na documentação, então sua confusão é compreensível!
Observe que você pode precisar ajudar diff
e grep
, forçando-os a tratar suas entradas como texto (com -a
); variáveis de ambiente podem conter valores que farão com que eles tratem sua entrada como binária, o que não produzirá nada útil:
diff -a set.sorted printenv.sorted | grep -a "<" | awk '{ print $2 }'
Melhor ainda, use comm
para comparar os dois arquivos:
comm -23 set.sorted printenv.sorted
Você pode substituir os arquivos por substituições de processos:
comm -23 <(set|sort) <(printenv|sort)
para evitar a criação de arquivos.