【发布时间】:2014-03-13 16:57:38
【问题描述】:
如果 2 个字符串立即匹配,我正在使用 awk -F 命令打印下一组单词。
如果其中一个搜索关键字在变量中重复,则采用最后匹配的关键字模式。但我想要第一个匹配的模式。
编辑: 在下面的示例中,我需要搜索CREATE 和TABLE 关键字,它们可能出现在任何行或被任何单词分割。不管是什么如果有匹配的CREATE & TABLE关键字,打印下一个元素如下。
a="Hello I have a CREATE set or multiset TABLE as TABLE (uid, cid, mid)"
echo "$a" | awk -F"CREATE.*TABLE" '{print $2}'
returns: as (uid, cid,mid)
但预期的输出是
作为表(uid、cid、mid)
【问题讨论】:
-
如果在-F中的“TABLE”后面加一个空格怎么办?
awk -F"CREATE.*TABLE "这样,第二个就不会和(匹配了。 -
@fedorqui :我编辑了我的问题。第二个也可能有空间
-
那么你可以使用
-F"CREATE[ a-z]*TABLE"。 -
@Jotne:它不重复。 fedorqui,如果多个场景有相同的要求,总是让我创建单独的问题
-
我想知道你是否从得到的答案中学到任何东西。