本篇 ShengYu 紀錄使用 grep 遇到 binary file (standard input) matches 的解決方法,某天使用 grep 時出現了 Binary file (standard input) matches
這樣的錯誤訊息,然後之後的 grep 就沒有東西了,看起來這個訊息是說 grep 從標準輸入讀取處理時遇到了 Binary file 二進制檔,但我很確定我是 cat 文字檔給 grep,那怎麼辦?
解決方法:
grep 使用 -a
選項(--text
選項也可),就是叫 grep 指令遇到 binary 就把它當文字處理,像這樣寫,1
grep -a 'pattern'
所以我原本的指令是用 cat 把文字檔印出來再導給 grep 處理,1
cat xxx.txt | grep 'pattern'
加了 -a
改寫後變成這樣,1
cat xxx.txt | grep -a 'pattern'
這樣就搞定了!
其他參考
grep returns “Binary file (standard input) matches” when trying to find a string pattern in file - Unix & Linux Stack Exchange
https://unix.stackexchange.com/questions/335716/grep-returns-binary-file-standard-input-matches-when-trying-to-find-a-string
其它相關文章推薦
Linux 常用指令教學懶人包
Linux grep/ack/ag 搜尋字串用法與範例
Linux ag 搜尋字串用法與範例(比 grep 還快)
Linux cut 字串處理用法與範例
Linux sed 字串取代用法與範例
Linux find 尋找檔案/尋找資料夾用法與範例
Linux kill 指令砍掉指定的 process name