会有人引导我到grep只包含模式_ARA的单词从下面的单个字符串。
弦乐:
LINK:['IM219MIR_ARA1','IM18Q4_ARA1','SM18Q4_ARA1','IM18PLANNING_ARA1','IM118Q4DYNVA_ARA1','IM218Q4DYNVA_ARA1','IM119EIOPALTG_ARA1','IM219EIOPALTG_ARA1','SM119EIOPALTG_ARA1']}预期产出:
IM219MIR_ARA1
IM18Q4_ARA1
SM18Q4_ARA1
IM18PLANNING_ARA1
IM118Q4DYNVA_ARA1
IM218Q4DYNVA_ARA1
IM119EIOPALTG_ARA1
IM119EIOPALTG_ARA1
IM219EIOPALTG_ARA1
SM119EIOPALTG_ARA1发布于 2019-11-25 15:06:48
grep接受-o只打印匹配的文本,即使匹配的文本来自同一行,也可以在单独的行中打印。它还接受-w强制正则表达式匹配整个单词(或者根本不匹配),其中单词是字母、数字和下划线的最大序列。因此,您可以简单地使用:
grep -ow '\w*_ARA\w*'在本例中,如果愿意,实际上可以省略-w选项,并获得相同的结果,因为这里的正则表达式仅显式地将word字符与\w匹配。
这将从标准输入中读取,因为没有文件名参数。如果您显示的文本位于一个名为input.txt的文件中,则将其作为参数传递:
grep -ow '\w*_ARA\w*' input.txt这一产出如下:
IM219MIR_ARA1
IM18Q4_ARA1
SM18Q4_ARA1
IM18PLANNING_ARA1
IM118Q4DYNVA_ARA1
IM218Q4DYNVA_ARA1
IM119EIOPALTG_ARA1
IM219EIOPALTG_ARA1
SM119EIOPALTG_ARA1从技术上讲,它产生的输出与您在问题中显示的输出略有不同,因为您显示的预期输出列出了两次IM119EIOPALTG_ARA1,尽管在您显示的文本中只显示了一次。我想这是个错误,而你其实只想要一次。
https://askubuntu.com/questions/1191572
复制相似问题