0
정확하게 패턴을 일치시키는 bash에 문제가 있습니다. 예를 들어, "test.bam"과 같은 내 파일 확장자 앞에있는 문자 만 일치시키고 싶지만, "t1st.bam"과 같은 숫자가 포함 된 경우 "st"가 출력됩니다. 내가 할 싶은 무엇bash의 패턴 일치 정확히 일치하기
는hello="t1est.bam"
re="([a-zA-Z]+)\.bam"
if [[ $hello =~ $re ]]; then
result=${BASH_REMATCH[1]}
else
echo "unable to parse string"
fi
echo "$result"
비 알파 문자가 제공되는 경우 모든 패턴과 일치하고로 경기를하려는 경우 '다른'block.Thanks
이 작동합니다! (^ [.....})와 같이 그룹 안쪽에 놓으면 무슨 뜻인지 물어볼 수 있습니까? –
@ErikR : [정규식에 대한 간략한 소개] (http://www.tldp.org/LDP/abs/html/x17129.html)에서 이에 대해 설명합니다. 캐럿'^'은 행의 시작과 일치 함을 나타내며 '[^ a-d]'는 "not a, b, c 또는 d"를 의미하는 문자 집합을 무효화 할 수도 있습니다. 표현의 중간에있는 캐럿은 대개 의도하지 않은 개행과 일치합니다. –