红联Linux门户
Linux帮助

快速的知道程序中输入的大段数据哪一行没有被正确执行或输出

发布时间:2016-03-17 15:29:06来源:linux网站作者:野小喵

问题:

如何快速的知道程序中输入的大段数据哪一行没有被正确执行或输出?


案例:

程序需要从文件中读取每一行进行相关的操作,并生成相应的运算结果数据文件,如果实际运行发现输出的文件个数少于输入的文件行数,如何定位是少了哪些行的数据?也就是说怎么定位到出错行的问题


一种解决方案:

生成一个运行之后的新文件,由运行中调入的行组成,再和原来文件比较差异

linux下,使用diff命令。(windows下可使用COMP或FC命令,用法类似)


简单举例:

两个文件:1.txt  和  2.txt1是源结果,2是运行行结果


1.txt
 
快速的知道程序中输入的大段数据哪一行没有被正确执行或输出

2.txt
快速的知道程序中输入的大段数据哪一行没有被正确执行或输出

运行diff命令:

$ diff 1.txt 2.txt 

运行结果:

15d14 
< 15 
18d16 
< 18 

表示源文件的15、18行被删除了。


附:diff输出格式(默认):
n1 a n3,n4 表示在文件1的n1行后面添加n3到n4行
n1,n2 d n3 表示在n1到n2行之间删除n3行
n1,n2 c n3,n4 表示把n1,n2行用n3,n4行替换掉
字母a:表示附加(add)
字符c:表示修改(change)
字符d:表示删除(delete)
字母前的是源文件,字母后是目标文件。Nx表示行号。
以”<”打头的行属于第一个文件,以”>”打头的行属于第二个文件。


本文永久更新地址:http://www.linuxdiyf.com/linux/19020.html