awk - 使用 sed 搜索多个文件
问题描述
我有一个包含多个文件的 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
我正在尝试在每个文件中提取 ---new--- 和 ---old--- 之间的数字,然后通过 awk 将其通过管道传输以获取第三列数字,具体来说。
我的命令是 --> sed -n '/---new---/,/---old---/ { /---old---/q;p }' 56g_flux_data* | gawk '{ print $3 }' >> output/56_flux_data*.txt
但是 sed 似乎只通过第一个文件 56g_flux_data39(1)1992 就是这样。
是否可以给 sed 一个通配符(例如 56g_flux_data*)并让它遍历整批文件并将每个输出打印到单独文件夹中自己的输出文件中?
解决方案
我认为该结构{ /---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*
推荐阅读
- asp.net - ASP 中继器——访问列/单元格
- python - Scrapy 不适用于翻页
- php - Yii2 - 在生产中记录 500 个错误
- python - windows环境下如何在python中获取文件所有者和其他属性
- c++ - 抛出未处理的异常:读取访问冲突。this->String 是 0x1C6F112
- ios - Xcode UITesting LoginUser 重定向到 homeScreen
- javascript - Jquery Collapse 面板无法正常工作
- python - Python 为自定义类定义 []、len()、items() 和 keys() 运算符
- typescript - tsconfig.json 中的 --inlineSourceMap 或 --sourceMap
- javascript - 为什么正则表达式在 ie 中不起作用?