打印字符串范围,提取所有列

时间:2015-03-17 15:48:30

标签: awk sed cut

我遇到需要从.txt文件中提取字符串范围的情况。

有5列,字符串起始值在第3列。我们将其称为201.让我们也调用字符串范围251的结尾。但是,我想输出所有列,而不仅仅是第3栏。

因此:输入文件 - >提取所有列 - >根据第3栏中的范围值起点确定要打印的行 - >打印从此值到范围中的最后一个值的所有内容 - >输出此范围。

有没有一种简单的方法可以做到这一点?

提前谢谢!

示例输入数据:

#        col1        col2        col3        col4        col5
        42293       52029       25514      750014     6383844
        42293       52028       25514      750007     6383835
        42293       52027       25513      749999     6383825
...
        42293       51995       25497      749748     6383513
        42293       51994       25497      749740     6383504
        42293       51993       25496      749732     6383494

1 个答案:

答案 0 :(得分:1)

用awk你可以简单地说:

awk '$3 >= 201 && $3 <= 251' filename

$3代表当前行第三列中的值,对于满足条件的行,执行默认操作(打印)。如果您还想包含标题,请使用

awk 'NR == 1 || ($3 >= 201 && $3 <= 251)' filename

NR是当前记录编号(默认情况下也是当前行号),因此无论内容如何,​​都会打印第一行。