![변수 콘텐츠에서 경로 일부 제거](https://linux55.com/image/83216/%EB%B3%80%EC%88%98%20%EC%BD%98%ED%85%90%EC%B8%A0%EC%97%90%EC%84%9C%20%EA%B2%BD%EB%A1%9C%20%EC%9D%BC%EB%B6%80%20%EC%A0%9C%EA%B1%B0.png)
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
POSIXly가 항상 다음으로 시작하는 경우 LOCAL_PATH
:
printf '%s\n' "${LINE#"$LOCAL_PATH"}"