
따라서 zip 파일을 반복하고 unzip -l $filename을 사용하여 내용을 나열하고 패턴과 일치하는 항목을 찾는 스크립트가 있습니다. (.*)report.xml
이 경우에는 test0\report.xml
unzip -j $filename
하지만 을 사용하여 압축을 풀려고 하면caution: filename not matched: test0\report.xml
나는 다음을 나열하는 파일을 중지하고 수동으로 시도했습니다.
7285 2018-05-04 13:34 test0\report.xml
그런 다음
unzip -j 2747693b-7027-44d3-98f4-a01f1ed139cf.zip test0\report.xml
나에게 오류가 발생합니다.caution: filename not matched: test0report.xml
나는 \\
그것을 탈출하기 위해 전화를 시도했지만 같은 오류가 발생했지만 test0\report.xml
대신 말했습니다.
나는 \, / 또는 //와 같은 모든 것을 시도했기 때문에 이것이 역슬래시 이스케이프 문제라고 생각하지 않습니다.
도와주세요.
답변1
내 쿠분투에서 문제를 재현했습니다. 파일 이름은 문자 그대로였고 test0\report.xml
내가 그랬을 때
unzip -j foo.zip test0\\report.xml
unzip
filename not matched: test0\report.xml
받은 문자열이 일치해야 하지만 반환된 것 같습니다.
이 도구는 일부 와일드카드를 지원합니다. 다음 명령을 사용하여 파일의 압축을 풀 수 있었습니다.
unzip -j foo.zip 'test0?report.xml'
버그? 내 생각에는 스크립트에 몇 가지 논리를 추가하거나 그런(희귀하기를 바라는) 상황이 다시 발생할 때마다 손으로 압축을 풀어야 할 것 같습니다. 또는 스크립트에서 unzip
일치하는 대신에 지원되는 다음 와일드카드를 활용하여 작업을 수행하십시오.(.*)report.xml
unzip
unzip -j foo.zip '*report.xml'