다른 문자의 첫 번째 인스턴스 이전의 모든 문자 가져오기

다른 문자의 첫 번째 인스턴스 이전의 모든 문자 가져오기

내가 가지고 있다고 말해

npmv="3.4.5";

첫 번째 점 앞에 모든 문자를 가져오는 가장 간단한 방법은 무엇입니까? 이 경우 "3"이 될까요?

답변1

npmv="3.4.5"
major=${npmv%%.*}

printf 'The major version number is %s\n' "$major"

매개변수 대체 ${variable%%pattern}가 제거됩니다.가장 긴pattern의 값과 일치하는 접미사 문자열입니다 $variable. 패턴은 정규 표현식이 아닌 파일 이름 와일드카드 패턴으로 처리됩니다. 이는 모든 POSIX 쉘에서 작동하는 표준 매개변수 대체입니다.

같은 일이지만, 단일을 사용하면 %예제에서 문자열의 끝만 제거됩니다(.5가장 짧은접미사 패턴 일치). 접두사 문자열의 경우 #대신 를 사용하세요 %.

당신은 또한 볼 수 있습니다매개변수 확장에 관한 POSIX 표준의 일부, 그리고 쉘 매뉴얼.

관련 정보