2016-10-26 13 views
0

아래 예제는 제가 문의 한 많은 웹 페이지 중 하나입니다. "마커까지 시작 부분에서 제거"또는 "끝에서 마커까지 제거"를 수행 할 수 없습니다. 패턴 지정 방법에 문제가있을 수 있습니까? 최종 목표는 주어진 마커에서 끝까지 텍스트 줄에서 모든 것을 제거하는 것입니다. sed를 가진 해결책은 역시 잘 발견 될지도 모르지만이 것은 나를 귀찮게한다.bash 매개 변수 확장이 예상대로 작동하지 않습니다.

VERSION=0.11.3-issue#18.6a0b43d.123 
# this one works as expected 
echo ${VERSION/\#/} 
0.11.3-issue18.6a0b43d.123 
# all the others don't, they return the input unchanged 
# trying to remove the 'i' to get the syntax straight 
echo ${VERSION%i} 
0.11.3-issue#18.6a0b43d.123 
echo ${VERSION%\i} 
0.11.3-issue#18.6a0b43d.123 
${VERSION%%\i} 
0.11.3-issue#18.6a0b43d.123 
echo ${VERSION%%i} 
0.11.3-issue#18.6a0b43d.123 
+0

예상되는 출력은 무엇입니까? – Leon

+0

echo $ {VERSION % i} 0.11.3- –

+0

타이핑 해 주셔서 감사합니다. 이 편집기에 줄 바꿈을 강제로 적용하려면 어떻게합니까? –

답변

0

문제는 # 또는 % 이후의 일이 마커하지만, 패턴되지 않는 것입니다.

echo ${VERSION%i*} 

나머지 값과 일치하도록 별표를 추가하십시오.

관련 문제