변수 값에서 하위 문자열 추출

변수 값에서 하위 문자열 추출

내 쉘 스크립트에서 호출되는 변수에 양식이 segment_78787저장된 문자열이 있습니다 . $ID두 번째 부분 "78787"을 가져와서 다른 변수에 할당해야 합니다.

나는 다음과 같이 시도했다

batchname=`ID|cut -d_ -f1`

그것은 나에게 어떤 결과도주지 않습니다.

답변1

쉘이 이를 지원하는 경우(모든 POSIX 유사 쉘이 지원함) 확장을 사용할 수 있습니다.

batchname=${ID##*_}

심지어

batchname=${ID#*_}

첫 번째 형식은 가장 오른쪽 밑줄(가장 오른쪽 밑줄 포함) 이전의 모든 문자를 삭제하고, 두 번째 형식은 가장 왼쪽 밑줄(가장 왼쪽 밑줄 포함) 이전의 모든 문자를 삭제합니다. 특정 예에서 두 형식은 동일합니다.

답변2

그것은해야한다

batchname=`echo $ID | cut -d_ -f2`

관련 정보