2017-02-07 8 views
1

나는 version1.txt 또는 version99.txt와 같은 이름의 폴더에 파일을 가지고 있습니다. 나는 GNU 유틸리티가 설치되어있는 Windows 상자에 있으며 명령 프롬프트에서이 작업을 수행하고 있습니다. 현재 내 출력은 다음과 같습니다쉘 스크립트 및 정규 표현식을 사용하여 파일 이름에서 버전 번호를 읽는 방법

명령을 dir | grep version

결과 : 나는이 경우 숫자 12를 반환 할 12/08/2016 04:50 PM 0 version12.txt

.

나는 버전 12와 일치하는 정규 표현식을 작성했지만 (필자는 12 개와 일치해야 함), sed (awk을 사용할 수 없음)로 읽는 방법을 알아낼 수 없습니다.

dir | grep version | sed "/version[0-9]{2}|version[0-9]/g"

어떻게 난 단지 버전 번호 표시하기를받을 수 있나요 : 이것은 내가 노력하고 무엇입니까?

당신은 버전 번호를 추출 awk 대신 grep로 사용할 수 있습니다

답변

1

는 :

dir | awk '/version/{gsub(/[^0-9]+/, "", $NF); print $NF}' 

12 

또한 sed를 사용할 수 있습니다

다음
dir | sed 's/.* version\|\..*//g' 
+0

질문에 언급했듯이이 서버에서 awk를 사용할 수 없습니다. – Jake

+0

ok'sed' 대안에 대한 업데이트 된 답변을보십시오 – anubhava

0

가 그렙 요구 사항을 제거하는 간단한 대안입니다 :

dir /b version*.txt | sed 's/[^0-9]*//g'