首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从一个匹配模式的字符串中获取grep单词?

如何从一个匹配模式的字符串中获取grep单词?
EN

Ask Ubuntu用户
提问于 2019-11-25 14:58:15
回答 1查看 3.9K关注 0票数 6

会有人引导我到grep只包含模式_ARA的单词从下面的单个字符串。

弦乐:

代码语言:javascript
复制
LINK:['IM219MIR_ARA1','IM18Q4_ARA1','SM18Q4_ARA1','IM18PLANNING_ARA1','IM118Q4DYNVA_ARA1','IM218Q4DYNVA_ARA1','IM119EIOPALTG_ARA1','IM219EIOPALTG_ARA1','SM119EIOPALTG_ARA1']}

预期产出:

代码语言:javascript
复制
IM219MIR_ARA1
IM18Q4_ARA1
SM18Q4_ARA1
IM18PLANNING_ARA1
IM118Q4DYNVA_ARA1
IM218Q4DYNVA_ARA1
IM119EIOPALTG_ARA1
IM119EIOPALTG_ARA1
IM219EIOPALTG_ARA1
SM119EIOPALTG_ARA1
EN

回答 1

Ask Ubuntu用户

发布于 2019-11-25 15:06:48

grep接受-o只打印匹配的文本,即使匹配的文本来自同一行,也可以在单独的行中打印。它还接受-w强制正则表达式匹配整个单词(或者根本不匹配),其中单词是字母、数字和下划线的最大序列。因此,您可以简单地使用:

代码语言:javascript
复制
grep -ow '\w*_ARA\w*'

在本例中,如果愿意,实际上可以省略-w选项,并获得相同的结果,因为这里的正则表达式仅显式地将word字符与\w匹配。

这将从标准输入中读取,因为没有文件名参数。如果您显示的文本位于一个名为input.txt的文件中,则将其作为参数传递:

代码语言:javascript
复制
grep -ow '\w*_ARA\w*' input.txt

这一产出如下:

代码语言:javascript
复制
IM219MIR_ARA1
IM18Q4_ARA1
SM18Q4_ARA1
IM18PLANNING_ARA1
IM118Q4DYNVA_ARA1
IM218Q4DYNVA_ARA1
IM119EIOPALTG_ARA1
IM219EIOPALTG_ARA1
SM119EIOPALTG_ARA1

从技术上讲,它产生的输出与您在问题中显示的输出略有不同,因为您显示的预期输出列出了两次IM119EIOPALTG_ARA1,尽管在您显示的文本中只显示了一次。我想这是个错误,而你其实只想要一次。

票数 9
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1191572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档