Bash 만 사용하여 패키지 이름에서 버전을 제거하려고합니다. 나는 하나의 해결책을 가지고 있지만 그것이 최선의 방법이라고 생각지 않는다. 그래서 그것을 할 수있는 더 좋은 방법이 있는지 알고 싶다. 더 낫게 나는 깨끗하고 이해하기 쉽다는 것을 의미합니다.Bash를 사용하여 패키지 이름에서 스트립 버전
"my-program-1.0"문자열이 있다고 가정하고 "my-program"만 원한다고 가정합니다. 현재 해결 방법은 다음과 같습니다.
#!/bin/bash
PROGRAM_FULL="my-program-1.0"
INDEX_OF_LAST_CHARACTER=`awk '{print match($0, "[A-Za-z0-9]-[0-9]")} <<< $PROGRAM_FULL`
PROGRAM_NAME=`cut -c -$INDEX_OF_LAST_CHARACTER <<< $PROGRAM_FULL`
실제로 "패키지 이름"구문은 중요한 경우 RPM 파일 이름입니다.
감사합니다.
"의 생산"내 프로그램 "을 생성합니다 [-0-9.] * $ // "'? – BCS
@BCS : 아니면 좀 더주의해야합니다. 예를 들어'program-name-3 ... 4--789'와 비교하거나 더 현실적으로'program-name2-1.0' (2를 잘못 제거)에 대해 일치합니다. – Cascabel
버전 *에 글자도있을 수 있습니다. –