Mar*_*cus 2 sed awk text-processing
我有这样的数据(这只是一小部分):
454SOL OW20704 0.317 0.251 5.525
454SOL HW120705 0.388 0.322 5.531
454SOL HW220706 0.229 0.290 5.553
462SOL OW20728 0.130 1.821 5.295
462SOL HW120729 0.120 1.806 5.394
462SOL HW220730 0.044 1.857 5.259
469SOL OW20749 0.461 1.266 5.451
469SOL HW120750 0.411 1.267 5.365
469SOL HW220751 0.398 1.248 5.527
500SOL OW20842 1.754 1.223 5.312
500SOL HW120843 1.845 1.184 5.299
500SOL HW220844 1.762 1.319 5.336
502SOL OW20848 1.592 1.629 5.349
502SOL HW120849 1.619 1.663 5.259
502SOL HW220850 1.671 1.591 5.395
515SOL OW20887 1.587 0.779 5.394
515SOL HW120888 1.495 0.817 5.389
515SOL HW220889 1.647 0.826 5.329
516SOL OW20890 1.013 0.105 5.494
516SOL HW120891 1.019 0.190 5.442
516SOL HW220892 1.045 0.029 5.437
522SOL OW20908 1.728 0.935 5.578
522SOL HW120909 1.682 0.928 5.489
522SOL HW220910 1.666 0.979 5.644
Run Code Online (Sandbox Code Playgroud)
我想删除3行,接下来的9行不管,然后再次删除3行。在本例中,我想删除第 10、11、12 和 22、23、24 行。预期产出
454SOL OW20704 0.317 0.251 5.525
454SOL HW120705 0.388 0.322 5.531
454SOL HW220706 0.229 0.290 5.553
462SOL OW20728 0.130 1.821 5.295
462SOL HW120729 0.120 1.806 5.394
462SOL HW220730 0.044 1.857 5.259
469SOL OW20749 0.461 1.266 5.451
469SOL HW120750 0.411 1.267 5.365
469SOL HW220751 0.398 1.248 5.527
502SOL OW20848 1.592 1.629 5.349
502SOL HW120849 1.619 1.663 5.259
502SOL HW220850 1.671 1.591 5.395
515SOL OW20887 1.587 0.779 5.394
515SOL HW120888 1.495 0.817 5.389
515SOL HW220889 1.647 0.826 5.329
516SOL OW20890 1.013 0.105 5.494
516SOL HW120891 1.019 0.190 5.442
516SOL HW220892 1.045 0.029 5.437
Run Code Online (Sandbox Code Playgroud)
我试过这个:
#!/bin/bash
awk 'NR%10==0 || NR%11==0 || NR%12==0' sol.txt | tee sol_after.txt
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我需要删除整个文件上的行,因此删除 10-12,然后删除 22-24,然后删除 34-36、46-48 等
在每个 Unix 机器上的任何 shell 中使用任何 awk:
$ seq 30 | awk 'NR%12 !~ /^(10|11|0)$/'
1
2
3
4
5
6
7
8
9
13
14
15
16
17
18
19
20
21
25
26
27
28
29
30
Run Code Online (Sandbox Code Playgroud)
或者如果您愿意:
$ seq 30 | awk 'NR%12 == 10{c=3} !(c&&c--)'
1
2
3
4
5
6
7
8
9
13
14
15
16
17
18
19
20
21
25
26
27
28
29
30
Run Code Online (Sandbox Code Playgroud)
请参阅/sf/answers/1253987381/了解具体c&&c--
内容和更多信息。