명령줄에서 awk에 대한 정규식 일치

명령줄에서 awk에 대한 정규식 일치

unrar 명령에서 파일 이름을 자세히 가져오고 명령줄을 통해 삭제하려고 합니다.

unrar 명령 출력은 다음과 유사합니다.

Extracting  BucketSort.cpp                                            OK 
Extracting  BucketSort.vcxproj                                        OK 
Extracting  BucketSort.vcxproj.filters                                OK 
Extracting  BucketSort.lastbuildstate                                 OK 
Extracting  BucketSort.log                                            OK 
Extracting  BucketSort.obj                                            OK 
Extracting  BucketSort.pch                                            OK 

지금까지 나는 다음과 같은 awk 명령을 생각해냈습니다.

unrar e BucketSort.rar | awk '{if (match($0,/Extracting\s*([\w|.]+)\s*OK/,m)) print m[0]}'

그러나 아무것도 인쇄되지 않습니다. 일치하도록 "추출 중"이라는 단어만 남겨두면 추출된 모든 파일에 대해 "추출 중"이 표시됩니다. 그래서 정규식으로 작성된 내용을 인식하지 못하는데, 그게 뭔지는 모르겠습니다. 이 표현의 문제점이 무엇인지 아시나요?

추신 : 정규식을 확인할 수 있습니다여기.

답변1

이렇게 하면 트릭을 수행할 수 있습니다.

unrar e BucketSort.rar | awk '/^Extracting/ {print $2}'

관련 정보