将文件与标准输出进行比较并打印出不匹配的行

将文件与标准输出进行比较并打印出不匹配的行

比较文件.txt

cat file.txt
apache2 php7.4 mysql-server 

的输出

dpkg --get-selections

任何与 file.txt 内容不匹配的包,将其粘贴为“apt remove”的参数

我怎样才能在一个命令行中完成它?请。

答案1

它很可能会破坏您的系统,但您要求这样做:

dpkg --get-selections | cut -f 1 | grep -v -x -f <( cat file.txt | xargs -n 1) | xargs apt -y remove

file.txt这将从获取的列表中删除包dpkg --get-selections(它们都不匹配 file.txt)并将它们发送到apt remove

从评论中得出另一个可能的解决方案,它可以让您与以下内容进行交互apt

apt remove $( dpkg --get-selections | cut -f 1 | grep -v -x -f <( cat file.txt | xargs -n 1) )

相关内容