我有一个用C编写的程序,它创建一个带有字符行的输出文件。我的目的是计算此输出文件中唯一的字符行数(不包括“ABC”)。
我可以使用
通过Linux命令行手动完成cat output/output.txt | grep -v "ABC" | sort | uniq -c > uniq_stats/stats.txt
我也把这个命令放到我的程序中,所以我不必手动完成。
memset(command, 0, 500);
sprintf(command, "cat %s | grep -v \"ABC\" | sort | uniq -c > uniq_stats/%s", out_filename, filename);
system(command);
out_filename是output / output.txt,filename是stats.txt
我希望特定的一行可以看到1351次。使用命令行的方法给出了正确的值。但是,系统(命令)方法只给出了1349次。另外,还有另一条线路使用系统(命令)方法不完整,即只打印出一部分字符串。
为什么我从2种方法得到不同的输出?我曾经只见过这个问题,因为我已经尝试了4或5个其他文件,这两种方法都给了我正确的结果。