我需要刪除該部分
man1/bmtoa.1.gz
從完整路徑
/usr/share/man/man1/bmtoa.1.gz
從而導致
/usr/分享/人/
我嘗試過 ${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`