awk比较2个文件,找到最小/最大值并存储
我有3个文件: 文件_1是静态的,内容不变,值可以是-160到0: xdslcmd: ADSL driver and PHY status Status: Idle Retrain Reason: 0 Tone number QLN 0 0.0000 1 0.0000 2 0.0000 3 0.0000 4 0.0000 5 0.0000 6 0.0000 7 -160.0000 8 -119.2000 9 -128.6700 10 -113.1200 11 -93.1000 12 -130.0000 13 -120.0000 14 -110.0000 15 -100.0000 16 -90.0000 17 -100.0000 18 -110.0000 19 -120.0000 20 -130.0000 21 -140.0000 22 -110.0000 23 0.0000 24 0.0000 xdslcmd:ADSL驱动程序和PHY状态 状态:空闲 再培训原因:0 音号 0 0.0000 1 0.0000 2 0.0000 3 0.0000 4 0.0000 5 0.0000 6 0.0000 7 -160.0000 8 -119.2000 9 -128.6700 10 -113.1200 11 -93.1000 12 -130.0000 13 -120.0000 14 -110.0000 15 -100.0000 16 -90.0000 17 -100.0000 18 -110.0000 19 -120.0000 20 -130.0000 21 -140.0000 22 -110.0000 23 0.0000 24 0.0000 文件_2看起来像文件_1,但值每次都在更改(值可以是-160到0) xdslcmd:ADSL驱动程序和PHY状态 状态:空闲 再培训原因:0 音号 0 0.0000 1 0.0000 2 0.0000 3 0.0000 4 0.0000 5 0.0000 6 0.0000 7 -160.0000 8 -159.2000 9 -148.6700 10 -123.1200 11 -83.1000 12 -100.0000 13 -100.0000 14 -100.0000 15 -80.0000 16 -80.0000 17 -110.0000 18 -120.0000 19 -130.0000 20 -140.0000 21 -150.0000 22 -100.0000 23 0.0000 24 0.0000 我想比较文件2$2和文件1$2,并在文件3中存储它们之间的差异 Exmaple: File_1 contains: 18 -120.0000 File_2 contains: 18 -140.0000 Expected output: 18 -20 0 文件_1包含:18-120.0000 文件_2包含:18-140.0000 预期产出:18-20 0 文件_1包含基本值(视为“0”) 文件_2每次都会更改,并保存实际值。 预期输出是测量过程中与基准值的最小/最大差值 在相同的音调下,QLN在测量过程中可能会越来越高或越来越低: File_1 contains: 18 -120.0000 File_2 contains: 18 -140.0000 File_2 contains: 18 -100.0000 (in a later query) Expected output: 18 -20 +20 文件_1包含:18-120.0000 文件_2包含:18-140.0000 文件_2包含:18-100.0000(在后面的查询中) 预期产出:18-20+20 文件1和文件2已排序,前5行不相关。awk比较2个文件,找到最小/最大值并存储,awk,Awk,我有3个文件: 文件_1是静态的,内容不变,值可以是-160到0: xdslcmd: ADSL driver and PHY status Status: Idle Retrain Reason: 0 Tone number QLN 0 0.0000 1 0.0000 2 0.0000 3 0.0000 4 0.0000 5
awk'FNR
awk 'FNR<6{next}NR==FNR{a[$1]=$2;next}{printf "%s\t%10f\n",$1,$2-a[$1]}' f1 f2
0 0.000000
1 0.000000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
6 0.000000
7 0.000000
8 -40.000000
9 -20.000000
10 -10.000000
11 10.000000
12 30.000000
13 20.000000
14 10.000000
15 20.000000
16 10.000000
17 -10.000000
18 -10.000000
19 -10.000000
20 -10.000000
21 -10.000000
22 10.000000
23 0.000000
24 0.000000
awk 'FNR<6{next}NR==FNR{a[$1]=$2;next}{printf "%s\t%10f\n",$1,$2-a[$1]}' f1 f2
0 0.000000
1 0.000000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
6 0.000000
7 0.000000
8 -40.000000
9 -20.000000
10 -10.000000
11 10.000000
12 30.000000
13 20.000000
14 10.000000
15 20.000000
16 10.000000
17 -10.000000
18 -10.000000
19 -10.000000
20 -10.000000
21 -10.000000
22 10.000000
23 0.000000
24 0.000000
awk 'FNR<6{next}NR==FNR{a[$1]=$2;next}d=$2-a[$1]{printf "%s\t%10f\n",$1,d}' f1 f2
8 -40.000000
9 -20.000000
10 -10.000000
11 10.000000
12 30.000000
13 20.000000
14 10.000000
15 20.000000
16 10.000000
17 -10.000000
18 -10.000000
19 -10.000000
20 -10.000000
21 -10.000000
22 10.000000