0

如何删除带有斜杠的子字符串?

#!/bin/sh
dir="/a/directory/last/which/last part/needs to/be/removed/end"
dir2=${dir/"last part/needs to/be/removed"}
echo $dir2

在这个例子中,输出应该变成

/a/directory/which/end

如何做到这一点?

4

2 回答 2

0

单程 :

 dir2=${dir%last*}
于 2013-03-28T15:39:35.753 回答
0

您正在bash使用sh.

您的选择是:

  • 将您的 shebang 线更改为#!/bin/bash并更改dir2=${dir/"last part/needs to/be/removed/"}
  • 保持 shebang 线#!/bin/sh不变并改变dir2="$(echo ${dir} | sed -e 's/last part\/needs to\/be\/removed\///')"你需要逃离你/的 s 的地方
于 2013-03-28T17:18:07.310 回答