Shell 提取字符串的一部分的脚本
在上面的行和类似的行中,我想提取Shell 提取字符串的一部分的脚本,shell,Shell,在上面的行和类似的行中,我想提取服务和flow.xml之间存在的任何内容,并将其保存到变量DIST 使用POSIX sh中可用的参数扩展机制,输出应为SVPublishBankTransfers: ns/APAC_BankTransfers_Publish/CMB/services/svcPublishBankTransfers/flow.xml 这样做的优点是完全在过程中(比需要通过外部工具进行管道连接的方法要快),并且与所有POSIX外壳(灰烬、破折号、ksh等)兼容 参考资料: 使用P
服务
和flow.xml
之间存在的任何内容,并将其保存到变量DIST
使用POSIX sh中可用的参数扩展机制,输出应为SVPublishBankTransfers:
ns/APAC_BankTransfers_Publish/CMB/services/svcPublishBankTransfers/flow.xml
这样做的优点是完全在过程中(比需要通过外部工具进行管道连接的方法要快),并且与所有POSIX外壳(灰烬、破折号、ksh等)兼容
参考资料:
ns/APAC_BankTransfers_Publish/CMB/services/svcPublishBankTransfers/flow.xml
这样做的优点是完全在过程中(比需要通过外部工具进行管道连接的方法要快),并且与所有POSIX外壳(灰烬、破折号、ksh等)兼容
参考资料:
s=ns/APAC_BankTransfers_Publish/CMB/services/svcPublishBankTransfers/flow.xml
s=${s%/flow.xml} # remove "/flow.xml"
s=${s##*/services/} # remove everything before "services"
echo "$s"
否则:
s='ns/APAC_BankTransfers_Publish/CMB/services/svcPublishBankTransfers/flow.xml'
[[ "$s" =~ /([^/]+)/[^/]*$ ]] && echo "${BASH_REMATCH[1]}"
svcPublishBankTransfers
使用BASH正则表达式:
s=ns/APAC_BankTransfers_Publish/CMB/services/svcPublishBankTransfers/flow.xml
s=${s%/flow.xml} # remove "/flow.xml"
s=${s##*/services/} # remove everything before "services"
echo "$s"
否则:
s='ns/APAC_BankTransfers_Publish/CMB/services/svcPublishBankTransfers/flow.xml'
[[ "$s" =~ /([^/]+)/[^/]*$ ]] && echo "${BASH_REMATCH[1]}"
svcPublishBankTransfers