我在 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*}
/abc/xyz/def/xyz/1234/lmn/
$ echo ${x%/xyz*}
/abc/xyz/def/xyz/1234/lmn
如果你真的不想要最后一个xyz
之前的/
,那么第二个echo应该就是你要找的;如果保留尾随 /
是可以接受的,则第一个会这样做。
关于linux - 在shell脚本中最后一次出现单词之前获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44634814/