내 쉘 스크립트에서 호출되는 변수에 양식이 segment_78787
저장된 문자열이 있습니다 . $ID
두 번째 부분 "78787"을 가져와서 다른 변수에 할당해야 합니다.
나는 다음과 같이 시도했다
batchname=`ID|cut -d_ -f1`
그것은 나에게 어떤 결과도주지 않습니다.
답변1
쉘이 이를 지원하는 경우(모든 POSIX 유사 쉘이 지원함) 확장을 사용할 수 있습니다.
batchname=${ID##*_}
심지어
batchname=${ID#*_}
첫 번째 형식은 가장 오른쪽 밑줄(가장 오른쪽 밑줄 포함) 이전의 모든 문자를 삭제하고, 두 번째 형식은 가장 왼쪽 밑줄(가장 왼쪽 밑줄 포함) 이전의 모든 문자를 삭제합니다. 특정 예에서 두 형식은 동일합니다.
답변2
그것은해야한다
batchname=`echo $ID | cut -d_ -f2`