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)