如何在 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 的调用)。

相关内容