[英]How to get substring between nth and n+1th occurrence of pipe '|' in shell script
[英]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.