2016-12-08 15 views
0

私は最近のDebianと最​​近のUbuntuを実行している2台の異なるLinuxコンピュータを持っています。両方とも、端末のコマンドラインでgrepを使って大きなファイル(> 6GB)からデータを照合して保存しようとしています。grep countとsaveが異なるのはなぜですか?

ただし、grep数は同じですが、エクスポートは異なります。私は理由を理解しようとしています。もしgrepの隠れた設定がどこかで設定されていれば、Ubuntuのコンピュータは非常に多くのマッチを見逃してしまいます(どちらもgrepはデフォルトのrepoから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 
関連する問題