대시와 숫자 앞에 가능한 모든 문자열을 필터링해야 합니다.
fcp-workflow-4.3.0-SNAPSHOT.zip
예:
fcp-워크플로-4.3.0-SNAPSHOT.zip
항상 다음을 얻어야 합니다: fcp-workflow
또는 이름이 무엇이든 간에.
이름은 아마도 fcp-worklflow-something-another-4.1.3....
길이를 모른다는 의미일 것입니다.
를 사용해 보았지만 cut -d
길이가 바뀔 수 있으므로 grep
작업을 수행하는 방법이 있을 수도 있습니다.
다음은 몇 가지 추가 예입니다.
fcp-test-content-REVIEW-1.0-1.0.zip
dhl-pages-i18n-tags-blueprints-1.0.zip
GlobalLink Connect Plus-6.1.1_SP1.zip
logistics-ui-4.5.0-SNAPSHOT.zip"
logistics-ui-4.3.0-SNAPSHOT.zip"
답변1
bash 매개변수 확장을 사용하여 대시와 숫자 다음의 가장 긴 문자열을 제거할 수 있습니다.
for file in *
do
printf '%s turns into %s\n' "${file}" "${file%%-[[:digit:]]*}"
done
답변2
첫 번째 대시 이전의 모든 항목을 얻으려면 숫자가 뒤따릅니다.
sed -E 's/-[[:digit:]].*$//' file
첫 번째 대시와 숫자부터 줄 끝까지 빈 문자열로 바꿉니다.
-i18n
귀하의 경우 운 좋게도 살아남은 제품 라인을 봤습니다 . 예를 들어 첫 번째 대시 + 숫자 + 점 + 숫자를 일치시키는 것은 다음과 같습니다.
sed -E 's/-[[:digit:]]+\.[[:digit:]]+.*$//' file