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

问题:

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


案例:

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


一种解决方案:

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

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


简单举例:

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


1.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

2.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
16
17
19
20

运行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表示行号。 
以”<”打头的行属于第一个文件,以”>”打头的行属于第二个文件。

更多diff命令内容可查看资料:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值