如何在 Debian jessie 中找到獨特「應用程式」的數量

如何在 Debian jessie 中找到獨特「應用程式」的數量

這是後續查詢allpackages.txt.gz 有兩個不同的檔案大小?

$ wc -l allpackages.txt 
57725 allpackages.txt

我查看了輸出,它顯示 57725 -6 頭文件,這是 57719 個包的總數,但在評論中共享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

有人可以透過以下幾種方式提供幫助:-

A。解碼指令本身試圖做什麼?我知道它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 +7從第 7 行開始列印文件;

  • cut -d' ' -f1保留第一個字段,使用單一空格作為分隔符號;

  • cut -d- -f1保留第一個字段,使用減號 ( -) 作為分隔符號;

  • uniq將相同行的運轉壓縮為單行;

  • wc -l列印行數。

因此,整個管道會忽略文件的前六行,然後嘗試計算所選欄位的唯一值。 (這假設輸入已排序,以便要壓縮在一起的值按順序排列,如果不是這樣,則可能 sort -u可以使用對 sort 的呼叫)。

相關內容