변수 콘텐츠에서 경로 일부 제거

변수 콘텐츠에서 경로 일부 제거

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

관련 정보