我有两台不同的Linux计算机,一台运行最近的Debian,另一台运行最近的Ubuntu,我尝试使用终端命令行上的grep匹配并保存大文件(> 6GB)中的数据。
但是,尽管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 :(得分:0)
Grep可能会将大文件解释为二进制文件。尝试使用--text
选项以强制文本模式:
grep --text -i "pattern" file > new_file