bash 변수에 저장된 문자열에서 모든 밑줄을 제거하는 방법은 무엇입니까?
myVar
현재 string 을 포함하는 변수가 있습니다 foo1234_
. 그러나 밑줄은 다른 곳에도 가능합니다.
밑줄을 제거하고 싶었지만 결과가 myVar="${myVar//_}"
나왔습니다 . Bad substitution
내가 뭘 잘못했나요?
답변1
매개변수 확장을 사용한 대체 유형:
underscored=A_B_C
echo "${underscored//_}"
//
모든 항목을 대체합니다. 빈 문자열로 바꾸는 경우 마지막 항목을 생략할 수 있습니다 /
.
답변2
이 간단한 변수 재할당은 트릭을 수행합니다.
myVar=${myVar//_/}
산출:
# myVar="hello_world__1"
# echo $myVar
hello_world__1
# myVar=${myVar//_/}
# echo $myVar
helloworld1