gpt4 book ai didi

bash - 在 Unix 中提取变量中两个字符串之间的部分

转载 作者:行者123 更新时间:2023-12-05 09:21:30 25 4
gpt4 key购买 nike

我有一个字符串,

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-like) 选项:

$ echo "$tester_one" | grep -oP '(?<=set ).*(?= where)'
abc=7

关于bash - 在 Unix 中提取变量中两个字符串之间的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31669103/

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