使用 awk 打印第一列,第二列和之后每四列

Use awk to print first column, second column and one column every four after that

我有一个文本文件,我想提取第一列、第二列和之后每 3 列的一列。另外,我想去掉第 2 行。我如何使用 awk 或类似工具来做到这一点?

一个例子: 我有一个这样的文本文件:

A B C D E F G H I J .. N (header 1)
A B C D E F G H I J .. N (header 2)
A B C D E F G H I J .. N (row 1)
A B C D E F G H I J .. N (row 2)
A B C D E F G H I J .. N (row n)

我正在尝试将其设置为

A B F J .. N (header 1)
A B F J .. N (row 1)
A B F J .. N (row 2)
A B F J .. N (row n)

谢谢。

P.s。我试过 How to print every 4th column up to nth column and from (n+1)th column to last using awk? 中提到的解决方案,但该解决方案对我不起作用

$ awk 'NR!=2{out=; for (i=2;i<=NF;i+=4) out = out OFS $i; print out}' file
A B F J 1)
A B F J 1)
A B F J 2)
A B F J n)

上面的输出很乱,因为示例输入中的 ...s 和注释使其无法测试。始终 post 实际的、可测试的 input/output,而不是此类的描述或其他抽象表示。并且不要在每一行都重复相同的数据,因为这会导致难以将输出字段映射到输入,从而更难理解您的需求。这将是一个更有用的例子:

$ cat file
101 102 103 104 105 106 107 108 109 110 111
201 202 203 204 205 206 207 208 209 210 211
301 302 303 304 305 306 307 308 309 310 311
401 402 403 404 405 406 407 408 409 410 411

$ awk 'NR!=2{out=; for (i=2;i<=NF;i+=4) out = out OFS $i; print out}' file
101 102 106 110
301 302 306 310
401 402 406 410