첫 번째 대시와 숫자 이전의 모든 항목을 가져오도록 출력을 필터링합니다.

첫 번째 대시와 숫자 이전의 모든 항목을 가져오도록 출력을 필터링합니다.

대시와 숫자 앞에 가능한 모든 문자열을 필터링해야 합니다.

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

관련 정보