【轉】 grep 文件報錯 “Binary file ... matches”


 

原文鏈接 http://blog.csdn.net/yaochunnian/article/details/7261006

grep 文件報錯 “Binary file ... matches”  
原因:文件為binary文件
解決:strings vers.log.2010-03-09 | grep -i ‘mezimedia’
           或者 grep -a -i ‘mezimedia’ vers.log.2010-03-09
grep命令是linux下的行過濾工具,其參數繁多,下面就一一介紹個個參數的作用,希望對大家有所幫助。

grep -- print lines matching a pattern (將符合樣式的該行列出)

◎語法: grep [options] 
PATTERN [FILE...] 
grep用以在file內文中比對相對應的部分,或是當沒有指定檔案時, 
由標准輸入中去比對。 在預設的情況下,grep會將符合樣式的那一行列出。

此外,還有兩個程序是grep的變化型,egrep及fgrep。 
其中egrep就等同於grep -E ,fgrep等同於grep -F 。

◎參數
                                    
     2. -a或--text  
                grep原本是搜尋文字文件,若拿二進制的檔案作為搜尋的目標,
                則會顯示如下的訊息: Binary file 二進制文件名 matches 然后結束。
                  
                若加上-a參數則可將二進制檔案視為文本文件搜尋,
                相當於--binary-files=text這個參數。
            
          ex:    (從二進制檔案mv中去搜尋panda樣式)
                (錯誤!!!)
               $ grep panda mv 
               Binary file mv matches  
                (這表示此檔案有match之處,詳見--binary-files=TYPE )
               $
                (正確!!!)
               $ grep -a panda mv 
       
   
     6. --binary-files=TYPE
                此參數TYPE預設為binary(二進制),若以普通方式搜尋,只有2種結果:
                  1.若有符合的地方:顯示Binary file 二進制文件名 matches
                  2.若沒有符合的地方:什么都沒有顯示。
                   
                若TYPE為without-match,遇到此參數,
                grep會認為此二進制檔案沒有包含任何搜尋樣式,與-I 參數相同。
                   
                若TPYE為text, grep會將此二進制文件視為text檔案,與-a 參數相同。
        
     Warning: --binary-files=text 若輸出為終端機,可能會產生一些不必要的輸出。
              
  
    16.  -I
                grep會強制認為此二進制檔案沒有包含任何搜尋樣式,
                與--binary-files=without-match參數相同。
                   
            ex:  $ grep -I panda mv

                    
    18.  -L, --files-without-match 
                不顯示平常一般的輸出結果,反而顯示出沒有符合的文件名稱。

    19.  -l, --files-with-matches               
                不顯示平常一般的輸出結果,只顯示符合的文件名稱。

    
        Shell Script傾向將傳統的grep移植,避開-q及-s參數,
        且將輸出限制到/dev/null。
    
POSIX: 定義UNIX及UNIX-like系統需要提供的功能。             
    
    25.  -V, --version 
   顯示出grep的版本號到標准錯誤。
   當您在回報有關grep的bugs時,grep版本號是必須要包含在內的。

    26.  -v, --invert-match
   顯示除搜尋樣式行之外的全部。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM