【问题标题】:Extract txt file subset using command line使用命令行提取txt文件子集
【发布时间】:2013-05-17 11:24:47
【问题描述】:


我是命令行 NB,我正在尝试学习解析 txt 文件的基础知识。这不是一件容易的事,因为我找不到详尽的指南或手册来给我基本的知识。

因此,我有一个非常大的 txt 空格分隔文件(约 3 百万行),例如:

-179.250000 89.916664 -9999
-179.083328 89.916664 -456
-178.916672 89.916664 -7543

我只想获取第一列值介于 33 和 40 之间以及第二列值介于 -13 和 28 之间的行。

非常感谢您的帮助,

不要

【问题讨论】:

  • 你试过什么?您能提供示例 input.txt 和预期结果吗?

标签: bash parsing shell text command-line


【解决方案1】:

awk:

$1 <= 40 && $1 >= 33 && $2 <= 28 && $2 >= -13 {
  print
}

...

$ awk -f script.awk <<< '-179.250000 89.916664 -9999
> -179.083328 89.916664 -456
> -178.916672 89.916664 -7543
> 34 0 123
> 34 -54 123
> 20 20 20
> '
34 0 123

【讨论】:

  • +1。 awk 是那些“介于这个和那个值之间的字段 N”工作的完美工具。
猜你喜欢
  • 2013-05-11
  • 2012-01-17
  • 2013-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2012-11-14
  • 1970-01-01
相关资源
最近更新 更多