데비안 jessie에서 고유한 '응용 프로그램' 수를 찾는 방법

데비안 jessie에서 고유한 '응용 프로그램' 수를 찾는 방법

에 대한 후속 쿼리입니다.allpackages.txt.gz에는 두 가지 파일 크기가 있습니까?

$ wc -l allpackages.txt 
57725 allpackages.txt

출력을 살펴본 결과 총 57719개 패키지에 해당하는 헤더 파일이 57725 -6이라고 표시되어 있지만 댓글에 공유되어 있습니다.http://linux.koolsolutions.com/2008/12/19/counting-number-of-packages-under-debian-linux/#comment-10014다음 명령은 작동해야 하지만 작동하지 않습니다.

$ tail -n +7 allpackages.txt | cut -d’ ‘ -f1 | cut -d’-‘ -f1 | uniq | wc -l
cut: cut: the delimiter must be a single character
Try 'cut --help' for more information.
the delimiter must be a single character
Try 'cut --help' for more information.
0

누군가 몇 가지 방법으로 도움을 줄 수 있습니까?

ㅏ. 명령 자체가 수행하려는 작업을 디코딩합니까? 나는 이것이 tail마지막 10개의 이상한 단어를 제공하는 데 사용되며 cut파일의 일부 섹션을 제거하려고 할 때라는 것을 알고 있습니다.

필요한 경우 사람들이 고유한 패키지 수를 알 수 있는 가장 좋은 방법을 알아낼 수 있도록 allpackages.txt를 어딘가에 공유할 수 있습니다.

https://www.dropbox.com/sh/9p03q138xx9nxvb/AAAukls-UnxRZwoCPwx4HwLAa?dl=0

답변1

다음 명령을 표시했습니다 tail -n +7 allpackages.txt | cut -d’ ‘ -f1 | cut -d’-‘ -f1 | uniq | wc -l. 여기에는 ASCII가 아닌 따옴표가 포함되어 있는데 이는 의도한 바가 아닙니다.

대신 이것을 시도해 보세요:

tail -n +7 allpackages.txt | cut -d' ' -f1 | cut -d- -f1 | uniq | wc -l

파이프라인 구성원이 수행하는 작업은 다음과 같습니다.

  • tail -n +77행부터 시작하는 파일을 인쇄합니다.

  • cut -d' ' -f1단일 공백을 구분 기호로 사용하여 첫 번째 필드를 유지합니다.

  • cut -d- -f1빼기 기호( -)를 구분 기호로 사용하여 첫 번째 필드를 유지합니다.

  • uniq동일한 줄의 실행을 단일 줄로 압축합니다.

  • wc -l줄 수를 인쇄합니다.

따라서 전체 파이프라인은 파일의 처음 6줄을 무시한 다음 선택한 필드에서 고유한 값을 계산하려고 시도합니다. (이는 함께 압축할 값이 순서대로 나오도록 입력이 정렬되어 있다고 가정합니다. 이것이 사실이 아닌 경우 정렬 호출이 sort -u사용될 수 있습니다.)

관련 정보