역추적을 사용하고 있으며 하드 드라이브에 일부 패키지가 포함된 Packages.gz 파일이 있습니다. Packages.gz가 포함된 폴더만 검색하려면 "apt-cache 검색"을 사용하고 싶습니다. 가능합니까?
답변1
당신이 찾고있는grep dctrl이것은dctrl 도구팩.
예를 들어:
$ grep-dctrl -ns Package -F Filename mplayer2_2.0~git20120817-dmo1_amd64.deb www.deb-multimedia.org_dists_wheezy_main_binary-amd64_Packages
mplayer2
-n
레이블이 아닌 필드의 값만 인쇄됨을 의미합니다. -s Package
패키지 필드만 인쇄됨을 나타냅니다. -F Filename
파일 이름 필드만 검색됨을 나타냅니다. mplayer2…deb
검색하는 것입니다. www…_Packages
검색할 파일입니다.
.gz 파일을 직접 검색할지 확실하지 않지만 stdin을 검색하므로 파이프를 사용할 수 있습니다.zcat Packages.gz | grep-dctrl …
편집하다:.deb
파일 이름뿐만 아니라 실제 파일 이름이 있는 경우 다음을 사용할 수도 있습니다.dpkg-deb
정보를 얻는 중입니다. 다음은 Wireshark를 사용하는 예입니다.
$ dpkg-deb --showformat='${package}\n' -W a.deb
wireshark
그리고 설명하자면 --showformat
출력 형식을 지정할 수 있습니다(여기서는 기본 패키지 및 버전이 아닌 패키지 이름만 가져옵니다). -W
이는 바이너리 패키지에 대한 형식화된 정보를 인쇄한다는 의미입니다. a.deb
물론 정보를 인쇄하는 것은 .deb 패키지입니다(파일 이름만 뱉어내는 것이 아니라는 것을 보여주기 위해 이름을 바꿨습니다).
답변2
왜 apt-cache를 사용하나요? zgrep은 단일 파일 내에서 검색할 수 있습니다...