修剪源文件路径

时间:2011-01-05 13:17:46

标签: shell

我需要在unix shell脚本中修剪以下路径,请建议

  • input- /vobs/java/server/forms/data/Branch/semanticexplorer.pls
  • output- server/forms/data/Branch/semanticexplorer.pls

2 个答案:

答案 0 :(得分:3)

你没有给我们任何更一般的标准来修剪 - 所以我正在砍掉固定的前两个组件。

这样的机制可以避免执行一个过程:

input=/vobs/java/server/forms/data/Branch/semanticexplorer.pls
output=${input#/vobs/java/}

Bash有一些扩展,可用于更一般的路径修剪。 Korn shell支持${var#prefix}表示法。

您也可以使用:

prefix=/vobs/java/
input=/vobs/java/server/forms/data/Branch/semanticexplorer.pls
output=${input#$prefix}

这允许您改变前缀并仍然将其删除。


在大多数炮弹中,蛮力方法是:

input=/vobs/java/server/forms/data/Branch/semanticexplorer.pls
output=$(echo $input | sed "s%/vobs/java/%%")

在Bash中:

input=/vobs/java/server/forms/data/Branch/semanticexplorer.pls
output=$(sed "s%/vobs/java/%%" <<< $input)

答案 1 :(得分:0)

echo $pathname | sed -E 's/\/([^/]*\/){2}//'