From man grep:
-a, –text
Process a binary file as if it were text; this is equivalent to the –binary-files=text option.
–binary-files=TYPE
If the first few bytes of a file indicate that the file contains binary data, assume that the file is of type TYPE. By default, TYPE is binary, and grep normally outputs either a one-line message saying that a binary file matches, or no message if there is no match. If TYPE is without-match, grep assumes that a binary file does not match; this is equivalent to the -I option. If TYPE is text, grep processes a binary file as if it were text; this is equivalent to the -a option. Warning: grep –binary-files=text might output binary garbage, which can have nasty side effects if the output is a terminal and if the terminal driver interprets some of it as commands.
grep
scans the file, and if it finds any unreadable characters, it assumes the file is in binary. Add -a
switch to grep
to make it treat the file a readable text. Most probably your input files contain some unreadable characters.
diff <(sed ‘1d’ ‘todayFile.txt’ | sort ) <(sed ‘1d’ yesterdayFile.txt | sort ) | grep “^<“
Wouldn’t be comm -13 <(...) <(...)
faster and simpler?