我需要在unix shell脚本中修剪以下路径,请建议
/vobs/java/server/forms/data/Branch/semanticexplorer.pls
server/forms/data/Branch/semanticexplorer.pls
答案 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}//'