繁体   English   中英

在Shell脚本中最后一次出现单词之前获取子字符串

[英]Get substring before last occurrence of a word in shell script

我在Linux中有一个字符串/abc/xyz/def/xyz/1234/lmn/xyz/7890/uvw

我想使用shell脚本在字符串xyz的最后一次出现之前提取子字符串。

例:

输入:

/abc/xyz/def/xyz/1234/lmn/xyz/7890/uvw

输出:

/abc/xyz/def/xyz/1234/lmn

我在线搜索,找到了使用单字符分隔符的解决方案,但我不知道如何使用xyz这样的字符串分隔符来解决该问题。

这个怎么样:

$ x=/abc/xyz/def/xyz/1234/lmn/xyz/7890/uvw
$ echo ${x%xyz*}
$ echo ${x%/xyz*}

如果您真的不希望/在最后一个xyz之前,则第二个回显应该是您想要的; 如果离开尾随的/是可以接受的,则第一个这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM