我遇到需要从.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
答案 0 :(得分:1)
用awk你可以简单地说:
awk '$3 >= 201 && $3 <= 251' filename
$3
代表当前行第三列中的值,对于满足条件的行,执行默认操作(打印)。如果您还想包含标题,请使用
awk 'NR == 1 || ($3 >= 201 && $3 <= 251)' filename
NR
是当前记录编号(默认情况下也是当前行号),因此无论内容如何,都会打印第一行。