返回介绍

GMT 入门

GMT 实例

GMT 进阶

附录

其他

-e 选项

发布于 2023-08-10 21:46:57 字数 1987 浏览 0 评论 0 收藏 0

GMT命令在读入数据时默认会处理读入的所有数据记录。-e 选项的作用是筛选或排除匹配某个字符串或者正则表达式的数据记录。

-e 选项的用法有两种:

  • 匹配某个字符串: -e[~]“pattern”

  • 匹配某个正则表达式: -e[~]/regexp/[i]

在匹配字符串或正则表达式前加上 ~ 表示反向操作,即排除匹配字符串或正则表达式的数据记录。如果数据记录中本身就包括字符 ~,则需要使用 ~ 对其进行转义。对于匹配正则表达式而言,还可以加上 i 表示忽略大小写。

如果需要指定多个可能的匹配字符串或表达式,则可以加上 +ffile。其中 file 中每行列出一个匹配字符串或表达式。如果某个匹配字符串以 +f 开头,则会被GMT当作是 -e 的子选项,因而需要使用 +f 以实现转义。

以一个常见的应用场景举例。假如文件 input.dat 中有一堆数据点,每个数据都对应某个分类,文件内容如下:

1 1 type1
2 2 type1
3 3 type1
4 4 type2
5 5 type2
6 6 type2
7 7 type3
8 8 type10
9 9 type10
10 10 null

可以使用 -e 选项筛选出自己需要的数据记录。

筛选出所有匹配 type 的记录:

$ gmt select input.dat -e"type"
1   1       type1
2   2       type1
3   3       type1
4   4       type2
5   5       type2
6   6       type2
7   7       type3
8   8       type10
9   9       type10

排除所有匹配 null 的记录:

$ gmt select input.dat -e~"null"
1   1       type1
2   2       type1
3   3       type1
4   4       type2
5   5       type2
6   6       type2
7   7       type3
8   8       type10
9   9       type10

筛选所有匹配 type2 的记录:

$ gmt select input.dat -e"type2"
4   4       type2
5   5       type2
6   6       type2

筛选所有匹配 type1 的记录:

# 错误写法,因为 type1 也包含在字符串 type10 中
$ gmt select input.dat -e"type1"
1   1       type1
2   2       type1
3   3       type1
8   8       type10
9   9       type10

# 正确写法
# 此处使用了正则表达式,符号 $ 表示行末匹配
$ gmt select input.dat -e/type1$/
1   1       type1
2   2       type1
3   3       type1

正则表达式的具体用法不在本手册的范围之内,用户请自行搜索“正则表示式”。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文