我需要删除该部分
man1/bmtoa.1.gz
从完整路径
/usr/share/man/man1/bmtoa.1.gz
从而导致
/usr/share/man/
我尝试了 ${path#[!/]*/*} 和 ${path#/*/*} 但都导致了错误的路径。
答案1
这将起作用${path%/*/*}
,但是是从后往前起作用。这里是关于在 bash 中截断字符串的很好的指南。
答案2
如果你可以处理/usr/share/man/man1
,那么你可以做dirname /usr/share/man/man1/bmtoa.1.gz
,但因为你说过你还需要 man1 脱落,所以你必须将它们菊花链连接起来:
dirname `dirname /usr/share/man1/bmtoa.1.gz`