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" " ") 

Конструкция $ (что-то) запускает что- то команду, вставляя ее вывод в командной строке.

Команда grep исключает любую строку, начинающуюся с символа #, опционально разрешая перед пробелом пробел. Затем команда tr заменяет новые строки пробелами.

Следующая команда является (небольшим) улучшением по сравнению с альтернативой, потому что sudo apt-get install не выполняется, когда список пакетов пуст.

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

Обратите внимание, что опция -a считывает элементы непосредственно из файла вместо стандартного ввода. Мы не хотим xargs файл в xargs потому что stdin должен оставаться неизменным для использования apt-get .