명령 줄에 추가 정보없이 zip 파일을 나열하는 방법


36

내 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).
tripleee

그렇습니다. 저는 이것이 바로 그 특정한 질문을하는 이유입니다. 더 낫고 실행 가능한 해결책을 찾기 위해서입니다.
рüффп

답변:


53
zipinfo -1 file.zip

또는:

unzip -Z1 file.zip

파일 만 나열합니다.

여전히 각 파일 이름에 대한 추가 정보를 원하는 경우 다음을 수행 할 수 있습니다.

unzip -Zl file.zip | sed '1,2d;$d'

또는:

unzip -l file.zip | sed '1,3d;$d' | sed '$d'

또는 (GNU 가정 head) :

unzip -l file.zip | tail -n +4 | head -n -2

강력한 sed에 감사합니다 ... 정확히 내가 원하는 것; 또한 zipinfo 도구는 흥미 롭습니다.
рüффп
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.