现在我有
grep "\sinstalled" combined_dpkg.log | awk -F ' ' '{print $5}' | sort | uniq -c | sort -rn
grep "\sinstalled" combined_dpkg.log | sort -k1 | awk '!a[$5]++' | cut -d " " -f1,5,6
并希望将这两者合并为一个包含-f1,5,6的$ 5计数的查询。 如果有这样的方法,或者保留在最终管道之后输出的值的方法。
上面第一个bash命令的头-3结果:
11 man-db:amd64
10 libc-bin:amd64
9 mime-support:all
第二个bash命令:
2015-11-10 linux-headers-4.2.0-18-generic:amd64 4.2.0-18.22
2015-11-10 linux-headers-4.2.0-18:all 4.2.0-18.22
2015-11-10 linux-signed-image-4.2.0-18-generic:amd64 4.2.0-18.22
文件格式如下:
2015-11-05 13:23:53 upgrade firefox:amd64 41.0.2+build2-0ubuntu1 42.0+build2-0ubuntu0.15.10.1
2015-11-05 13:23:53 status half-configured firefox:amd64 41.0.2+build2-0ubuntu1
2015-11-05 13:23:53 status unpacked firefox:amd64 41.0.2+build2-0ubuntu1
2015-11-05 13:23:53 status half-installed firefox:amd64 41.0.2+build2-0ubuntu1
答案 0 :(得分:0)
-m pip install -U pip setuptools
答案 1 :(得分:0)
根据您的评论:"对于每个软件包,找到已安装的最早(第一个)版本。打印包装名称,版本和安装的总次数。"
我猜这个 awk 会这样做。
awk '$0!~/ installed/{next} !($5 in a){a[$5]=$1 FS $5 FS $6; count[$5]++; next} count[$5]>0 && a[$5]~$6{count[$5]++} END{for (i in a) print a[i],count[i]}' file