답변1
"Bash 전용" 답변은 아니지만 유용할 수도 있습니다.
echo "$PWD///" | tr -s '/'
답변2
"pure bash"에서 사용할 수 있지만 extglob
활성화된 경우에만 사용할 수 있습니다.
$ shopt -s extglob
$ A="////qsd/////sdfgfg//qsd//////"
$ echo ${A//\/+(\/)/\/}
/qsd/sdfgfg/qsd/
답변3
변수를 사용하여 Bash만 사용:
# code:
shopt -s extglob
A="$PWD//";
echo "Original: $A";
echo "Result: ${A//+(\/)//}"
# output:
Original: /home/myhome/Projects/Bob/build//
Result: /home/myhome/Projects/Bob/build/
// = 검색 및 바꾸기, 검색 및 바꾸기 계속
+(/) = 하나 이상의 "/"와 일치
// = "/"로 대체됨
더 나은 시각적 예를 위해 슬래시를 벗어나지 않고 이를 더 잘 보려면 ${VAR//pattern/string}으로 검색/대체하지 않도록 "z"를 눌러야 한다고 가정해 보겠습니다. 기본 구조는 난독화되어 있습니다. :
# code:
shopt -s extglob
A=zzz/zzz/zzzzz/zzzz/zzzz;
echo $A;
echo ${A//+(z)/z}
# output:
zzz/zzz/zzzzz/zzzz/zzzz
z/z/z/z/z
답변4
고쳐 쓰다:인주(+1) 올바른 아이디어를 얻었습니다...제 답변은 홀수 "/"에만 적용됩니다.
물론아니요설정하려면 "extglob"이 필요합니다.
var="$PWD///"; var="${var//\/\//}" 에코 "$var"