我有一组指定的字符串,需要匹配一些关键字。
关键词是:字符串将包含"CREATESETTABLE“和dot(.)和TABLENAME在下面的示例字符串,DATABASE1和DATABASE2是动态的,但之后是一个点(.)然后是TABLENAME;但dot(.)而TABLENAME可能重复多次。
string="CREATESETTABLEDATABASE1.TABLE1(uid)CREATESETTABLEDATABASE1.TABLENAMEuid,cid,mid)DATABASE2.TABLENAME(嗨,你好)“
我用的是:
echo "$string" | awk -F'CREATESETTABLE+[^ ]+.TABLENAME' '{print $2}'实际输出是:(hi,hello)
预期输出为:uid,cid,mid)DATABASE.TABLENAME(hi,hello)
注意:使用我在本例中指定的关键字。不要使用其他关键字,例如"(“;其他数据是动态的,我说的是静态的。)
发布于 2014-03-14 10:43:06
试试这个sed,
echo $string | sed 's/.*CREATESETTABLE[^)]\+TABLENAME\(.*\)/\1/g'正如评论中提到的,
sed -e 's/.*CREATESETTABLE[^)]\+TABLENAME\(.*\)/\1/g' -e 's/.*CREATEMULTISETTABLE[^)]\+TABLENAME\(.*\)/\1/g'https://stackoverflow.com/questions/22402647
复制相似问题