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

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

我有一个包含很多包名称的文本文件。

package1
package2

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

package 4

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

答案1

类似这样的事应该可以解决问题。

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

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

grep 命令将排除以 # 开头的任何行,可选择允许其前面有空格。然后 tr 命令将换行符替换为空格。

答案2

以下命令比替代命令有(轻微)改进,因为sudo apt-get install当包列表为空时不会执行。

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

请注意,该-a选项直接从文件而不是标准输入读取项目。我们不想将文件导入,xargs因为 stdin 必须保持不变才能供apt-get.

答案3

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

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

答案4

受到这里接受的答案的启发关于删除评论的这个答案

apt-get install $(grep -o '^[^#]*' filename)

相关内容