在shell脚本

时间:2017-06-19 15:45:25

标签: linux shell unix

我在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这样的字符串分隔符。

1 个答案:

答案 0 :(得分:4)

这个怎么样:

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

如果你真的不希望/在最后xyz之前,那么第二个回声应该是你正在寻找的;如果留下尾随/是可以接受的,那么第一个就是这样。