Bash删除变量中最后2个“ /”符号之前的所有符号

Gog*_*ton 0 variables bash sed

挣扎。请帮忙。

a="/var/www/test/some/page3.html"
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为

a="some/page3.html"
Run Code Online (Sandbox Code Playgroud)

我尝试着

a=$(sed "s~/var/www/test/~~g" $a)
Run Code Online (Sandbox Code Playgroud)

但是得到baaaad的结果。

Pau*_*ges 5

Bash参数解析
无需运行子流程。

$: a="/var/www/test/some/page3.html"
$: echo "${a%/*/*}"      # the part you want to get rid of
/var/www/test
$: echo "${a#${a%/*/*}}" # strip that
/some/page3.html
Run Code Online (Sandbox Code Playgroud)

如果您也想摆脱那个领先的斜线...

$: echo "${a#${a%/*/*}/}"
some/page3.html
Run Code Online (Sandbox Code Playgroud)