在bash脚本中获取两个字符串之间的数据可以通过使用字符串处理函数和正则表达式来实现。以下是一种可能的解决方案:
expr
和正则表达式来获取两个字符串之间的数据。假设我们有两个字符串str1
和str2
,我们想要获取它们之间的数据。str="This is a sample string"
str1="is"
str2="sample"
result=$(expr match "$str" ".*$str1\(.*\)$str2.*")
echo $result
上述代码中,expr match
命令使用正则表达式匹配字符串str
,并提取出位于str1
和str2
之间的数据。结果存储在变量result
中,并打印输出。
str="This is a sample string"
str1="is"
while [[ $str =~ $str1(.*) ]]; do
result="${BASH_REMATCH[1]}"
echo $result
str=${str#*"${BASH_REMATCH[0]}"}
done
上述代码中,使用while
循环和正则表达式$str1(.*)
来匹配字符串str
中的所有匹配项。每次匹配成功后,将匹配结果存储在变量result
中,并打印输出。然后,使用${str#*"${BASH_REMATCH[0]}"}
来更新字符串str
,去除已匹配的部分,以便继续匹配下一个。
这是一种在bash脚本中获取两个字符串之间数据的方法。请注意,这只是一种解决方案,具体实现可能因实际需求和情况而有所不同。
领取专属 10元无门槛券
手把手带您无忧上云