2016-12-08 42 views
0

我有兩個不同的Linux計算機,一個運行一個最近Debian和一個最近Ubuntu和在兩個我嘗試匹配並使用命令行上的grep的終端中的大文件(> 6GB)保存數據。grep計數和保存匹配不同,爲什麼?

不過,雖然grep的計數是相同的,出口是不同的。我試圖理解爲什麼,如果有可能在grep中設置隱藏設置,導致Ubuntu計算機錯過如此多的匹配(在這兩種情況下,grep是使用apt-get從默認回購安裝的,我使用的是相同的文件)。 Debian正在按預期返回結果。

Debian的:

wc -l file 
returns "33742301 file" 

grep -i "pattern" -c file 
returns "410882" 

grep -i "pattern" file > new_file 
wc -l new_file 
returns "410882 new_file" 

Ubuntu的:

wc -l file 
returns "33742301 file" 

grep -i "pattern" -c file 
returns "410882" 

grep -i "pattern" file > new_file 
wc -l new_file 
returns "3911 new_file" 

那麼,爲什麼與Ubuntu的差異,特別是因爲Ubuntu的Debian的自發現它的根源是什麼?

在過去的1,5年中,我已經嘗試過使用許多不同的文本文件,並且Debian輸出和Ubuntu輸出之間總是有顯着差異。

+0

只是猜測,是任何別名爲grep定義?你可以用'alias grep'來檢查它(假設你使用bash)。 – Heinrich

+0

顯示由Debian報告但不包含Ubuntu的行的示例,可能使用'xxd'。 – choroba

+0

也許你的語言環境不同 - 嘗試運行'locale', –

回答

0

的grep可以解釋大文件作爲二進制文件。嘗試使用--text選項爲了強制文本模式:

grep --text -i "pattern" file > new_file