gpt4 book ai didi

awk - 使用 awk 为大型顺序多头文件保留输出文件中的 2 行输入文件头

转载 作者:行者123 更新时间:2023-12-04 15:29:42 25 4
gpt4 key购买 nike

我的输入文件如下所示:

  X|Y|Z|W|N|M|D
fits_0001
1 19193.12 76.73 283.634 30.614 5.119 0.168
2 16974.98 73.58 643.020 157.605 5.204 0.199
3 21860.38 77.26 292.871 172.139 5.270 0.179
4 348148.69 88.90 21.196 187.410 5.224 0.176
5 70756.91 78.72 282.039 204.934 5.247 0.177
6 11991.60 75.90 34.742 223.909 5.244 0.176
7 14004.02 76.69 568.076 238.097 5.326 0.147
8 68987.25 77.56 793.915 433.301 5.358 0.169
9 699118.88 93.08 530.607 469.153 5.395 0.163
10 26622.89 78.09 907.149 571.626 5.266 0.153
11 25831.63 76.43 853.957 621.249 6.185 0.316
12 255103.98 81.78 709.661 629.690 5.391 0.147
13 17330.91 76.18 542.212 730.684 5.337 0.169
14 10898.14 74.85 670.807 891.083 5.487 0.171
15 35657.71 75.42 841.495 1005.311 5.437 0.133
X|Y|Z|W|N|M|D
fits_0002
1 18714.96 75.10 282.147 29.946 4.962 0.146
2 16462.14 77.47 641.517 156.964 4.946 0.121
3 21411.43 76.48 291.370 171.422 5.000 0.136
4 343717.99 107.30 19.696 186.715 4.969 0.137
5 69321.64 81.23 280.601 204.276 5.040 0.134
6 12570.47 74.85 713.948 226.500 5.055 0.141
7 12948.01 78.34 566.432 237.319 4.858 0.148
8 50249.01 81.32 521.645 421.338 5.018 0.145
9 67875.78 83.19 792.415 432.572 5.064 0.140
10 684185.58 118.56 529.111 468.482 5.171 0.137
11 25851.06 76.97 905.646 570.932 5.056 0.140
12 25075.39 77.70 852.496 620.413 5.872 0.324
13 117170.90 261.02 708.726 627.624 3.372 0.000
14 72320.03 522.45 708.195 630.788 2.829 0.000
15 16964.97 75.89 540.661 729.893 5.031 0.098
16 34085.88 76.87 840.085 1004.523 5.146 0.142
X|Y|Z|W|N|M|D
fits_0003
1 17702.96 78.29 282.216 29.895 4.631 0.078
2 16332.55 78.54 641.578 156.917 4.685 0.026
3 20936.28 78.56 291.540 171.342 4.750 0.079
4 338357.14 116.54 19.810 186.654 4.736 0.080
5 68776.70 85.36 280.672 204.210 4.805 0.069
6 10873.89 78.94 33.320 223.096 4.618 0.042
7 12069.17 76.95 713.959 226.461 4.682 0.077
8 13372.56 78.52 566.731 237.322 4.804 0.039
9 49356.48 82.66 521.748 421.303 4.752 0.059
10 66294.65 85.80 792.527 432.465 4.784 0.049
11 675405.53 136.39 529.174 468.417 4.869 0.050
12 23399.20 78.42 117.812 534.329 4.691 0.053
13 25242.30 80.45 905.773 570.944 4.691 0.037
14 243032.53 110.32 708.222 628.919 4.789 0.047
15 16425.15 76.48 540.795 729.855 4.744 0.033
16 9637.39 76.89 669.321 890.158 4.703 0.064
17 33870.97 81.00 840.087 1004.454 4.786 0.023

等等……

带有 2 个标题行,用于适合文件的大约 2352 个不同图像(0001 到 2352)。

下面一行awk代码:

awk '{if($4<=709.999 && $4>=662.172 && $5<=629.895 && $5>=599.559) {print > "output.txt"}}' input.txt   

打印输出文件:

 12  255103.98    81.78  709.661  629.690 5.391 0.147 
13 117170.90 261.02 708.726 627.624 3.372 0.000
14 243032.53 110.32 708.222 628.919 4.789 0.047
15 249091.58 102.93 708.353 628.764 4.786 0.151
15 257602.60 76.18 708.283 628.726 5.301 0.154
15 250071.97 97.72 708.465 628.599 4.765 0.206
14 257048.70 80.93 708.472 628.770 5.332 0.184
15 252688.07 83.82 708.799 628.782 5.118 0.136
13 176222.48 140.10 708.871 627.372 4.400 0.344
14 254926.50 83.71 708.928 628.599 5.080 0.086
12 121131.29 232.98 709.546 627.529 3.593 0.000
14 255246.55 85.01 709.061 628.313 5.326 0.086
13 256982.44 80.30 709.001 628.434 5.264 0.098
13 259024.53 81.94 709.224 628.211 5.158 0.171
14 258342.99 80.72 709.358 628.010 5.218 0.169
14 256036.26 83.19 709.371 628.342 5.241 0.140
15 252519.59 89.42 709.258 628.429 5.059 0.061
16 248010.38 101.19 709.374 627.964 4.845 0.139
15 251972.06 88.05 709.218 628.478 5.159 0.138
17 259479.98 73.57 708.934 628.601 5.299 0.102
14 99555.76 323.85 709.277 626.733 3.366 0.000
15 251158.18 95.20 708.995 628.113 5.202 0.147
16 253486.35 91.32 709.142 628.154 5.177 0.173
12 259105.62 75.92 708.855 628.482 5.189 0.177

还有其他的......

此代码部分打印了我想要的内容,但我需要在文件中打印每个连续适合图像的输入标题(就像我在输入文件中所拥有的一样;这使我能够识别哪个输出行属于哪个图像(在换句话说,我还需要根据需要将 2 个行标题插入到输出中的特定行。

所以我想要的输出应该是这样的;

 X|Y|Z|W|N|M|D
fits_0001
12 255103.98 81.78 709.661 629.690 5.391 0.147
X|Y|Z|W|N|M|D
fits_0002
13 117170.90 261.02 708.726 627.624 3.372 0.000
X|Y|Z|W|N|M|D
fits_0003
14 243032.53 110.32 708.222 628.919 4.789 0.047
15 249091.58 102.93 708.353 628.764 4.786 0.151
X|Y|Z|W|N|M|D
fits_0004
15 257602.60 76.18 708.283 628.726 5.301 0.154
X|Y|Z|W|N|M|D
fits_0005
15 250071.97 97.72 708.465 628.599 4.765 0.206

and so on...

非常感谢在此问题上提供的任何帮助,并提前致谢。

最佳答案

能否请您尝试以下操作,字段的条件是从 OP 的代码本身获取的。

awk '
/\|/ || /fits/{
print
next
}
$4<=709.999 && $4>=662.172 && $5<=629.895 && $5>=599.559
' Input_fie

说明:为以上添加详细说明。

awk '                                                            ##Starting awk program from here.
/\|/ || /fits/{ ##Checking condition if a line contains | OR fits then do following.
print ##Print the current line here.
next ##next will skip all further statements from here.
}
$4<=709.999 && $4>=662.172 && $5<=629.895 && $5>=599.559 ##Checking conditions for 4th and 5th fields as per OP post.
' Input_file ##Mentioning Input_file name here.

关于awk - 使用 awk 为大型顺序多头文件保留输出文件中的 2 行输入文件头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61478129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com