我有一个相当大的 csv 文件(17GB),我正在尝试对其进行完整性检查。我写了一个小脚本,看起来像这样:
#!/usr/bin/php
<?php
$f = fopen($argv[1],'r');
$i=0;
while (!feof($f)) {
$row = fgetcsv($f);
$i++;
}
print $i."\n";
?>
应该只读取行数并打印出来。此脚本输出:60770881
但如果我这样做wc -l
,结果是 60777200。
我的 csv 文件是从 MySQL 生成的:
INTO OUTFILE '/tmp/file.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n'
所以它不应该有任何未转义的换行符或类似的东西。有谁知道可能出了什么问题?