내 bash 명령 줄에서 사용할 때 unzip -l test.zip
다음과 같은 출력이 표시됩니다.
Archive: test.zip
Length Date Time Name
--------- ---------- ----- ----
810000 05-07-2014 15:09 file1.txt
810000 05-07-2014 15:09 file2.txt
810000 05-07-2014 15:09 file3.txt
--------- -------
2430000 3 files
그러나 파일 세부 정보가 포함 된 줄에만 관심이 있습니다.
grep을 사용하여 다음과 같이 필터링하려고했습니다.
unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v Archive | grep -v " files"
그러나 길고 오류가 발생하기 쉽습니다 (예 :이 목록의 파일 이름 Archive가 삭제됨)
unzip -l (unzip 맨 페이지를 확인했지만 찾지 못했습니다) 또는 다른 도구가있는 다른 옵션이 있습니까?
아카이브의 압축을 풀지 않고 내부의 파일을 보는 것이 중요합니다.
그렇습니다. 저는 이것이 바로 그 특정한 질문을하는 이유입니다. 더 낫고 실행 가능한 해결책을 찾기 위해서입니다.
—
рüффп
grep
이있는 모든 항목을 Awk 스크립트로 리팩토링 할 수 있으며 일반적으로 정밀도가 크게 향상되었습니다.awk 'NR >3 { if (/^ *---/) exit 0; print }'
바닥 글뿐만 아니라 처음 세 줄을 자르고 파일 이름 만 쉽게 추출 할 수 있습니다 (힌트 :)print substr($0, 29)
.