我在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
这样的字符串分隔符。
答案 0 :(得分:4)
这个怎么样:
$ x=/abc/xyz/def/xyz/1234/lmn/xyz/7890/uvw
$ echo ${x%xyz*}
$ echo ${x%/xyz*}
如果你真的不希望/
在最后xyz
之前,那么第二个回声应该是你正在寻找的;如果留下尾随/
是可以接受的,那么第一个就是这样。