apt-get从文件中批量安装包?

我有一个包含大量包名的文本文件。

package1 package2 # comment # installing package3 because it was needed for... package 3 package 4 

如何在不删除注释的情况下批量安装文本文件中的所有包?

沿着这些路线应该做的事情。

 apt-get install $(grep -vE "^\s*#" filename | tr "\n" " ") 

$(某事物)构造运行something命令,在命令行中插入其输出。

grep命令将排除以#开头的任何行,可选地允许在它之前的空格。 然后tr命令用空格替换换行符。

以下命令是替代方案的一个(轻微)改进,因为当包列表为空时不执行sudo apt-get install

 xargs -a <(awk '! /^ *(#|$)/' "$packagelist") -r -- sudo apt-get install 

请注意, -a选项直接从文件而不是标准输入读取项目。 我们不希望将文件传递给xargs因为stdin必须保持不变以供apt-get

给定一个包列表文件package.list ,尝试:

 sudo apt-get install $(awk '{print $1'} package.list)