从变量内容中删除路径的一部分

从变量内容中删除路径的一部分

在 Bash 中我有一个变量:

LOCAL_PATH="/this/is/a/path/"

然后我有另一个变量,其内容以 LOCAL_PATH 开头,应该将其删除:

LINE="/this/is/a/path/which/is/longer"

结果应该是:

RESULT="which/is/longer"

我已经尝试过使用 Bash 的字符串操作

RESULT=$(echo "${LINE//\/this\/is\/a\/path\/}")

但是我如何在其中包含变量 LOCAL_PATH 来防止上面表达式中的硬编码路径呢?

答案1

只需包含LOCAL_PATH在模式部分:

printf '%s\n' "${LINE//"$LOCAL_PATH"/}"

如果LINE始终以 的内容开头LOCAL_PATH,则 POSIXly:

printf '%s\n' "${LINE#"$LOCAL_PATH"}"

相关内容