Files
grep 嘗試在文件中查找字元串模式時返回“二進製文件(標準輸入)匹配”
我在 Ubuntu 上,我輸入
cat .bash_history | grep git
並返回二進製文件(標準輸入)匹配
My
bash_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**選項。