我有一根绳子,
tester_one="update set_tables set abc=7 where bcd=9"
这里我只想提取“set”和“where”之间的部分,
abc=7
我尝试了几个 Unix 命令,但它发现了任何出现的情况set或者在我希望它拾取的部分之前遇到的地方。
我对如何使用 Java 有一个想法,但我迷失在 Unix 中,因为我对此很陌生。
使用 sed
$ echo "$tester_one" | sed -E 's/.*set (.*) where.*/\1/'
abc=7
要将其捕获到变量中:
$ new=$(echo "$tester_one" | sed -E 's/.*set (.*) where.*/\1/')
$ echo $new
abc=7
使用 awk
$ echo "$tester_one" | awk '{sub(/.*set /,""); sub(/ where.*/,""); print;}'
abc=7
使用 grep -P
如果你的 grep 支持-P
(类似 perl)选项:
$ echo "$tester_one" | grep -oP '(?<=set ).*(?= where)'
abc=7
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)