我有一个Windows文件夹,里面有多个文件,每个文件都标有56g_flux_data39(1)1992、56g_flux_data39(2)1992、56g_flux_data39(3)1992等。
这些文件没有.txt扩展名,但它们是ASCII文本。
我想搜索每个文件,复制两点之间的一列数字,并将这些数字附加到自己的文本文件中,放在一个单独的标有 "输出 "的文件夹中。
输入文件看起来像这样。
union Ehigh Elow old_group new_group flux_wts
0 2e+007 1e+007 0 0 1
1 1e+007 6.43e+006 1 0 0.714
2 6.43e+006 5e+006 1 1 0.286
3 5e+006 4.3e+006 2 1 0.233333
4 4.3e+006 3e+006 2 2 0.433333
5 3e+006 2e+006 2 3 0.333333
6 2e+006 1.85e+006 3 3 0.15
7 1.85e+006 1.5e+006 3 4 0.35
8 1.5e+006 1.2e+006 3 5 0.3
9 1.2e+006 1e+006 3 6 0.2
10 1e+006 861000 4 6 0.154444
11 861000 750000 4 7 0.123333
12 750000 600000 4 8 0.166667
13 600000 470000 4 9 0.144444
14 470000 330000 4 10 0.155556
15 330000 270000 4 11 0.0666667
16 270000 200000 4 12 0.0777778
17 200000 100000 4 13 0.111111
18 100000 50000 5 13 0.555556
19 50000 20000 5 14 0.333333
20 20000 17000 5 15 0.0333333
21 17000 10000 5 16 0.0777778
22 10000 3740 6 16 0.695556
23 3740 2250 6 17 0.165556
24 2250 1000 6 18 0.138889
25 1000 192 7 18 0.897778
26 192 188 7 19 0.00444444
27 188 118 7 20 0.0777778
28 118 116 7 21 0.00222222
29 116 105 7 22 0.0122222
30 105 101 7 23 0.00444444
31 101 100 7 24 0.00111111
32 100 67.5 8 24 0.361111
33 67.5 65 8 25 0.0277778
34 65 37.1 8 26 0.31
35 37.1 36 8 27 0.0122222
36 36 21.8 8 28 0.157778
37 21.8 21.2 8 29 0.00666667
38 21.2 20.5 8 30 0.00777778
39 20.5 10 8 31 0.116667
40 10 7 9 31 0.333333
41 7 6.88 9 32 0.0133333
42 6.88 6.5 9 33 0.0422222
43 6.5 6.25 9 34 0.0277778
44 6.25 5 9 35 0.138889
45 5 1.13 9 36 0.43
46 1.13 1.08 9 37 0.00555556
47 1.08 1.01 9 38 0.00777778
48 1.01 1 9 39 0.00111111
49 1 0.625 10 39 1
50 0.625 0.5 11 40 1
51 0.5 0.45 12 40 0.5
52 0.45 0.4 12 41 0.5
53 0.4 0.375 13 41 0.25
54 0.375 0.35 13 42 0.25
55 0.35 0.325 13 43 0.25
56 0.325 0.3 13 44 0.25
57 0.3 0.25 14 44 0.5
58 0.25 0.2 14 45 0.5
59 0.2 0.15 15 46 0.5
60 0.15 0.1 15 47 0.5
61 0.1 0.08 16 48 1
62 0.08 0.06 17 49 1
63 0.06 0.05 18 50 0.5
64 0.05 0.04 18 51 0.5
65 0.04 0.03 19 52 1
66 0.03 0.0253 20 52 0.47
67 0.0253 0.02 20 53 0.53
68 0.02 0.01 21 53 1
69 0.01 0.004 22 54 0.612245
70 0.004 0.0002 22 55 0.387755
71 0.0002 1e-005 23 55 1
---new--hist---
0 2e+007 1.7221e-005 1.51759e-005 5.53654e-006
0 6.43e+006 1.7221e-005 1.51759e-005 5.53654e-006
1 6.43e+006 8.08454e-005 0.000200928 5.40646e-005
1 4.3e+006 8.08454e-005 0.000200928 5.40646e-005
2 4.3e+006 0.000145154 0.000403202 0.00010127
2 3e+006 0.000145154 0.000403202 0.00010127
3 3e+006 0.000388332 0.00080329 0.000239471
3 1.85e+006 0.000388332 0.00080329 0.000239471
4 1.85e+006 0.000645575 0.00307826 0.000523439
4 1.5e+006 0.000645575 0.00307826 0.000523439
5 1.5e+006 0.00055335 0.00247979 0.00044268
5 1.2e+006 0.00055335 0.00247979 0.00044268
6 1.2e+006 0.000576025 0.00173511 0.000413298
6 861000 0.000576025 0.00173511 0.000413298
7 861000 0.000165402 0.00119838 0.000144079
7 750000 0.000165402 0.00119838 0.000144079
8 750000 0.000223517 0.00100167 0.000178813
8 600000 0.000223517 0.00100167 0.000178813
9 600000 0.000193714 0.000793271 0.000151743
9 470000 0.000193714 0.000793271 0.000151743
10 470000 0.000208616 0.000589909 0.000146475
10 330000 0.000208616 0.000589909 0.000146475
11 330000 8.94067e-005 0.000445539 7.31509e-005
11 270000 8.94067e-005 0.000445539 7.31509e-005
12 270000 0.000104308 0.000347571 7.7265e-005
12 200000 0.000104308 0.000347571 7.7265e-005
13 200000 0.00319101 0.00230183 0.000797753
13 50000 0.00319101 0.00230183 0.000797753
14 50000 0.0018252 0.00199194 0.00073008
14 20000 0.0018252 0.00199194 0.00073008
15 20000 0.00018252 0.00112307 0.000155142
15 17000 0.00018252 0.00112307 0.000155142
16 17000 0.00698177 0.00461108 0.00153599
16 3740 0.00698177 0.00461108 0.00153599
17 3740 0.00156043 0.00307077 0.00093876
17 2250 0.00156043 0.00307077 0.00093876
18 2250 0.0124326 0.00505144 0.00106091
18 192 0.0124326 0.00505144 0.00106091
19 192 5.50667e-005 0.00261557 5.39194e-005
19 188 5.50667e-005 0.00261557 5.39194e-005
20 188 0.000963667 0.00206903 0.000604855
20 118 0.000963667 0.00206903 0.000604855
21 118 2.75333e-005 0.00161066 2.70667e-005
21 116 2.75333e-005 0.00161066 2.70667e-005
22 116 0.000151433 0.00151996 0.000137073
22 105 0.000151433 0.00151996 0.000137073
23 105 5.50667e-005 0.00141779 5.29689e-005
23 101 5.50667e-005 0.00141779 5.29689e-005
24 101 0.00519571 0.0128928 0.00347238
24 67.5 0.00519571 0.0128928 0.00347238
25 67.5 0.000398611 0.0105619 0.000383848
25 65 0.000398611 0.0105619 0.000383848
26 65 0.0044485 0.00793284 0.00253907
26 37.1 0.0044485 0.00793284 0.00253907
27 37.1 0.000175389 0.00582725 0.000170189
27 36 0.000175389 0.00582725 0.000170189
28 36 0.00226411 0.0045137 0.00137105
28 21.8 0.00226411 0.0045137 0.00137105
29 21.8 9.56667e-005 0.00342783 9.30336e-005
29 21.2 9.56667e-005 0.00342783 9.30336e-005
30 21.2 0.000111611 0.0033241 0.000107926
30 20.5 0.000111611 0.0033241 0.000107926
31 20.5 0.00689983 0.00642135 0.00235604
31 7 0.00689983 0.00642135 0.00235604
32 7 0.000209027 0.0120884 0.000205443
32 6.88 0.000209027 0.0120884 0.000205443
33 6.88 0.000661918 0.0116501 0.000625358
33 6.5 0.000661918 0.0116501 0.000625358
34 6.5 0.000435472 0.0111031 0.000418723
34 6.25 0.000435472 0.0111031 0.000418723
35 6.25 0.00217736 0.00975767 0.00174189
35 5 0.00217736 0.00975767 0.00174189
36 5 0.00674111 0.00453269 0.00152349
36 1.13 0.00674111 0.00453269 0.00152349
37 1.13 8.70944e-005 0.00192446 8.32407e-005
37 1.08 8.70944e-005 0.00192446 8.32407e-005
38 1.08 0.000121932 0.00181959 0.000114029
38 1.01 0.000121932 0.00181959 0.000114029
39 1.01 0.0173104 0.0360668 0.0107119
39 0.625 0.0173104 0.0360668 0.0107119
40 0.625 0.0050808 0.0154665 0.00365818
40 0.45 0.0050808 0.0154665 0.00365818
41 0.45 0.00157568 0.00864229 0.00131306
41 0.375 0.00157568 0.00864229 0.00131306
42 0.375 0.000545575 0.0079077 0.000509203
42 0.35 0.000545575 0.0079077 0.000509203
43 0.35 0.000545575 0.00736189 0.000506605
43 0.325 0.000545575 0.00736189 0.000506605
44 0.325 0.00211518 0.00806198 0.00162706
44 0.25 0.00211518 0.00806198 0.00162706
45 0.25 0.0015696 0.00703404 0.00125568
45 0.2 0.0015696 0.00703404 0.00125568
46 0.2 0.00377275 0.0131143 0.00282956
46 0.15 0.00377275 0.0131143 0.00282956
47 0.15 0.00377275 0.00930475 0.00251517
47 0.1 0.00377275 0.00930475 0.00251517
48 0.1 0.091609 0.410538 0.0732872
48 0.08 0.091609 0.410538 0.0732872
49 0.08 0.07575 0.263312 0.0568125
49 0.06 0.07575 0.263312 0.0568125
50 0.06 0.06268 0.343788 0.0522333
50 0.05 0.06268 0.343788 0.0522333
51 0.05 0.06268 0.280895 0.050144
51 0.04 0.06268 0.280895 0.050144
52 0.04 0.251373 0.548759 0.158993
52 0.0253 0.251373 0.548759 0.158993
53 0.0253 0.192807 0.207717 0.0762083
53 0.01 0.192807 0.207717 0.0762083
54 0.01 0.0694347 0.075778 0.0277739
54 0.004 0.0694347 0.075778 0.0277739
55 0.004 0.0965393 0.0161128 0.000241348
55 1e-005 0.0965393 0.0161128 0.000241348
---old--hist---
0 2e+007 1.0516e-005 1.51714e-005 5.258e-006
0 1e+007 1.0516e-005 1.51714e-005 5.258e-006
1 1e+007 9.3907e-006 1.35479e-005 4.69535e-006
1 5e+006 9.3907e-006 1.35479e-005 4.69535e-006
2 5e+006 0.00033497 0.000365572 0.000133988
2 2e+006 0.00033497 0.000365572 0.000133988
3 2e+006 0.0018445 0.00266105 0.00092225
3 1e+006 0.0018445 0.00266105 0.00092225
4 1e+006 0.0013411 0.000582432 0.00013411
4 100000 0.0013411 0.000582432 0.00013411
5 100000 0.0054756 0.00237802 0.00054756
5 10000 0.0054756 0.00237802 0.00054756
6 10000 0.0094254 0.0040934 0.00094254
6 1000 0.0094254 0.0040934 0.00094254
7 1000 0.01239 0.00538091 0.001239
7 100 0.01239 0.00538091 0.001239
8 100 0.01435 0.00623213 0.001435
8 10 0.01435 0.00623213 0.001435
9 10 0.015677 0.00680843 0.0015677
9 1 0.015677 0.00680843 0.0015677
10 1 0.017293 0.0367933 0.0108081
10 0.625 0.017293 0.0367933 0.0108081
11 0.625 0.0040507 0.0181529 0.00324056
11 0.5 0.0040507 0.0181529 0.00324056
12 0.5 0.0020602 0.00923262 0.00164816
12 0.4 0.0020602 0.00923262 0.00164816
13 0.4 0.0021823 0.0075858 0.00163672
13 0.3 0.0021823 0.0075858 0.00163672
14 0.3 0.0031392 0.00774222 0.0020928
14 0.2 0.0031392 0.00774222 0.0020928
15 0.2 0.0075455 0.0108859 0.00377275
15 0.1 0.0075455 0.0108859 0.00377275
16 0.1 0.091609 0.410538 0.0732872
16 0.08 0.091609 0.410538 0.0732872
17 0.08 0.07575 0.263312 0.0568125
17 0.06 0.07575 0.263312 0.0568125
18 0.06 0.12536 0.309176 0.0835733
18 0.04 0.12536 0.309176 0.0835733
19 0.04 0.194 0.674356 0.1455
19 0.03 0.194 0.674356 0.1455
20 0.03 0.12207 0.301062 0.08138
20 0.02 0.12207 0.301062 0.08138
21 0.02 0.12811 0.184824 0.064055
21 0.01 0.12811 0.184824 0.064055
22 0.01 0.11341 0.0289901 0.0022682
22 0.0002 0.11341 0.0289901 0.0022682
23 0.0002 0.052564 0.0175463 0.0026282
23 1e-005 0.052564 0.0175463 0.0026282
---new---
0 2e+007 1.7221e-005
1 6.43e+006 8.08454e-005
2 4.3e+006 0.000145154
3 3e+006 0.000388332
4 1.85e+006 0.000645575
5 1.5e+006 0.00055335
6 1.2e+006 0.000576025
7 861000 0.000165402
8 750000 0.000223517
9 600000 0.000193714
10 470000 0.000208616
11 330000 8.94067e-005
12 270000 0.000104308
13 200000 0.00319101
14 50000 0.0018252
15 20000 0.00018252
16 17000 0.00698177
17 3740 0.00156043
18 2250 0.0124326
19 192 5.50667e-005
20 188 0.000963667
21 118 2.75333e-005
22 116 0.000151433
23 105 5.50667e-005
24 101 0.00519571
25 67.5 0.000398611
26 65 0.0044485
27 37.1 0.000175389
28 36 0.00226411
29 21.8 9.56667e-005
30 21.2 0.000111611
31 20.5 0.00689983
32 7 0.000209027
33 6.88 0.000661918
34 6.5 0.000435472
35 6.25 0.00217736
36 5 0.00674111
37 1.13 8.70944e-005
38 1.08 0.000121932
39 1.01 0.0173104
40 0.625 0.0050808
41 0.45 0.00157568
42 0.375 0.000545575
43 0.35 0.000545575
44 0.325 0.00211518
45 0.25 0.0015696
46 0.2 0.00377275
47 0.15 0.00377275
48 0.1 0.091609
49 0.08 0.07575
50 0.06 0.06268
51 0.05 0.06268
52 0.04 0.251373
53 0.0253 0.192807
54 0.01 0.0694347
55 0.004 0.0965393
---old---
0 2e+007 1.0516e-005
1 1e+007 9.3907e-006
2 5e+006 0.00033497
3 2e+006 0.0018445
4 1e+006 0.0013411
5 100000 0.0054756
6 10000 0.0094254
7 1000 0.01239
8 100 0.01435
9 10 0.015677
10 1 0.017293
11 0.625 0.0040507
12 0.5 0.0020602
13 0.4 0.0021823
14 0.3 0.0031392
15 0.2 0.0075455
16 0.1 0.091609
17 0.08 0.07575
18 0.06 0.12536
19 0.04 0.194
20 0.03 0.12207
21 0.02 0.12811
22 0.01 0.11341
23 0.0002 0.052564
我想提取每个文件中---新的---和---旧的---之间的数字 然后通过awk管道得到第三列数字,特别是。
gawk '{ print $3 }' >> output
但是sed似乎只检查第一个文件56g_flux_data39(1)1992,仅此而已。
有没有可能给sed一个通配符(例如56g_flux_data*),让它通过整个批次的文件,并将每个输出结果打印到单独文件夹中的自己的输出文件?
在 /---old---/q
书信 q
是 "退出 "的命令--它退出脚本。只需删除这部分。
我认为结构是 { /---old---/q;p }
是用来清除 ---old---
的输出。这可以通过 awk
:
for f in 56g_flux_data*; do
sed -n '/---new---/,/---old---/p' "$f" | gawk '!/---old---/ { print $3 }' >> output/"$f"
done
你有没有考虑过 awk
为一切?
gawk '/---new---/ { printer=1; }'
/---old---/ { printer=0; }
printer { print $3 > "output/" FILENAME }
' 56g_flux_data*