gpt4 book ai didi

regex - Unix 命令在匹配模式后打印数据的第二部分

转载 作者:太空宇宙 更新时间:2023-11-04 11:12:36 24 4
gpt4 key购买 nike

我有一组指定的字符串,其中包含一些要匹配的关键字。

关键字是:string will contain "CREATESETTABLE"and dot(.) and TABLENAME在下面的示例字符串中,DATABASE1 和 DATABASE2 是动态的,但之后会出现一个点 (.),然后是 TABLENAME;但是点(.)和TABLENAME可能会重复n次。

string="CREATESETTABLEDATABASE1.TABLE1(uid)CREATESETTABLEDATABASE1.TABLENAMEuid,cid,mid)DATABASE2.TABLENAME(hi,hello)"

我用的是:

echo "$string" | awk -F'CREATESETTABLE+[^ ]+.TABLENAME' '{print $2}'

实际输出是:(hi,hello)

预期输出是:uid,cid,mid)DATABASE.TABLENAME(hi,hello)

注意:使用我在此示例中指定的关键字。不要使用其他关键字,例如“(”;其他数据是动态的,只有我说的是静态的

最佳答案

试试这个sed

echo $string | sed 's/.*CREATESETTABLE[^)]\+TABLENAME\(.*\)/\1/g'

如评论中所述,

sed -e 's/.*CREATESETTABLE[^)]\+TABLENAME\(.*\)/\1/g' -e 's/.*CREATEMULTISETTABLE[^)]\+TABLENAME\(.*\)/\1/g'

关于regex - Unix 命令在匹配模式后打印数据的第二部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22402647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com