繁体   English   中英

之后,使用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)

谢谢。

ps我试过使用如何使用awk打印第4列到第n列以及从第(n + 1)列到最后列的方法。 但是解决方案对我不起作用

$ awk 'NR!=2{out=$1; 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和注释使其无法测试。 始终发布ACTUAL,可测试的输入/输出,而不是其描述或其他抽象表示。 而且,不要在每一行上重复相同的数据,因为这样会使将输出字段映射到输入变得困难,因此也更难理解您的需求。 这将是一个更有用的示例:

$ 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=$1; 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM