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}'