Files

grep 嘗試在文件中查找字元串模式時返回“二進製文件(標準輸入)匹配”

  • December 15, 2020

我在 Ubuntu 上,我輸入cat .bash_history | grep git並返回

二進製文件(標準輸入)匹配

Mybash_history確實存在,並且其中有很多以 . 開頭的行git

是什麼導致顯示此錯誤,我該如何解決?

大概該文件.bash_history以非文本數據開頭,因此grep將文件視為二進製文件。輸出證實了這一點file .bash_history

.bash_history: data 

您可以從頭開始讀取幾個字節以獲得一致的視圖:

head -c1K .bash_history 

在這裡,我正在閱讀第一個 1 KiB。

您可以將 STDOUT 通過管道傳輸到hexdump/od或類似的。


作為旁注,grep將文件名作為參數,所以cat在這裡沒用;試試這個:

grep git .bash_history

您可以使用grep -a 'pattern'.

man grep頁面:

-a, –text

像處理文本一樣處理二進製文件;這相當於**–binary-files=text**選項。

引用自:https://unix.stackexchange.com/questions/335716