grep returns
Binary file test.log matches
For example
echo \"line1 re \\x00\\r\\nline2\\r\\nline3 re\\r\\n\" > test.log # in zsh
You could run the data file through cat -v
, e.g
$ cat -v tmp/test.log | grep re
line1 re ^@^M
line3 re^M
which could be then further post-processed to remove the junk; this is most analogous to your query about using tr
for the task.
grep -a will force grep to search and output from a file that grep thinks is binary. grep -a re test.log
You can force grep to look at binary files with:
grep --binary-files=text
You might also want to add -o
(--only-matching
) so you don't get tons of binary gibberish that will bork your terminal.
you can do
strings test.log | grep -i
this will convert give output as a readable string to grep.
You can use "strings" to extract strings from a binary file, for example
strings binary.file | grep foo