這是後續查詢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 的呼叫)。