使用 apt list --installed 列出已安装的软件包,但仅显示软件包名称

使用 apt list --installed 列出已安装的软件包,但仅显示软件包名称

我经常使用 bash,我正在编写一个脚本,用于帮助某人卸载软件包,当软件包不在系统中时,会显示错误消息,我试图弄清楚如何显示所有已安装软件包的列表,就像apt list --installeddoes 一样,但不显示所有信息(例如:without /jammy,now 1.4.8+dfsg-3build1 amd64 [installed,automatic]),而只显示软件包名称。下面是我尝试显示软件包而不显示代码中的额外信息的命令:

apt list --installed | grep -oP '/jammy \K.*' |  grep -o "$removepackagename" | awk -F'|' 'NR==1 {print;x=$2} NR>1 {if ($2 != x) {print;x=$2}}'

我希望上面的命令能够显示已安装的软件包列表,而无需额外的信息。此外,在上面的命令中,我尝试利用我对 grep 的了解(几乎为零)来删除额外的信息,命令的这一部分是:

grep -oP '/jammy \K.*'

我还希望输出类似于:

apt
aptitude
(some other packages on new lines each)

(我也知道这不是它实际输出的内容,这只是一个例子。)

答案1

仅列出所有已安装软件包的名称:

apt list --installed | cut -d'/' -f1 | uniq

一次仅在一个屏幕上列出所有已安装软件包的名称,以便更轻松地滚动查看结果:

apt list --installed | cut -d'/' -f1 | uniq | less

将所有已安装软件包的名称列表保存在名为installed-packages.txt的文件中

apt list --installed | cut -d'/' -f1 | uniq > installed-packages.txt

相关内容