- 论坛徽章:
- 0
|
较复杂文件处理,能否用awk实现性能如何
两个文件
a
b
#cat a
a1 b=1 num=3 c=2
a3 b=1 num=3 c=3
bc f=3 num =2 f=3
fa f=4 num=2 f=6
#cat b
a4 b=1 num=6 c=3
a1 b=1 num=5 c=2
bc f=3 num =1 f=3
fb f=4 num=3 f=6
要求对比两个文件
条件1:如果文件a中有和文件b第1,2,4部分都相同的行则用文件b中该行的第三部分num=x 其x的值减去文件a中该行第三部分num=x其x的值,并将结果连同该行的其他部分写入文件c
例如:
文件b中第二行a1 b=1 num=5 c=2的第一部分:a1 ,第二部分b=1,第4部分c=2和文件a的第一行a1 b=1 num=3 c=2相应部分相同则将结果
a1 b=1 num=2 c=2 写入文件c (num=2是文件b的num=5减去文件a的num=3的得来的)
条件2:如果条件1中num后数值相减后该结果为负值则将文件b中的该行直接写入文件c
例如:b中的第三行bc f=3 num =1 f=3与文件a中的第三行bc f=3 num =2 f=3的1,2,4部分相同,但是num后数值的运算结果为-1 (1减2得来的)所以直接将文件b中的该行bc f=3 num =1 f=3直接计入文件c
条件3:如果文件a中没有找到和文件b中1,2,4部分相同的行则将文件b中的该行直接写入文件c
例如:文件b的第四行fb f=4 num=3 f=6,在文件a中无法找到和他第1,2,4部分相同的行所以直接将该行写入文件写入文件c
条件4:a或者b本文本身中不会出现第1,2,4部分相同的行
[ 本帖最后由 sbyond 于 2008-6-11 17:10 编辑 ] |
|