変数コンテンツからパスの一部を削除する

変数コンテンツからパスの一部を削除する

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"/}"

LINEPOSIXlyが常に次から始まる場合LOCAL_PATH

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

関連情報