Существует Диаметр.. Совсем не столько же функций сколько Visio, но делает схемы: http://live.gnome.org/Dia
Можно использовать xargs:
cat /path/to/file | xargs apt-mark auto
Это должно работать, если существует одно имя пакета на строку в текстовом файле /path/to/file
.
Другая опция состояла бы в том, чтобы использовать для цикла:
for pkg in `cat /path/to/file`; do apt-mark auto $pkg; done
Второй путь мог бы быть полезным, если у Вас есть подобная проблема, где команду нельзя назвать со списком параметров, но необходимо назвать его однажды для каждого параметра, который Вы имеете. Но в Вашем случае дело не в этом изящный, конечно, … :)
Btw я предполагаю, что Вы используете удар.
Примечание: В моей системе apt-mark --help
говорит:
Usage: apt-mark [options] {markauto|unmarkauto} packages...
И также:
apt-mark is deprecated, use apt-get markauto/unmarkauto.
Это кажется, что Вы хотите вывести свой список файлов в apt-mark auto
по одному. Этот псевдокод должен запустить Вас:
while read pkgname; do apt-mark auto $pkgname; done <list_of_packages
Запустите следующий скрипт с python scriptname.py list-of-packages.txt
как корень:
import subprocess
import sys
filename = sys.argv[1]
with open(filename) as f:
packages = f.read()
packages = packages.split()
packages = " ".join(packages)
cmd = "apt-mark auto " + packages
subprocess.call(cmd, shell=True)
Я ожидаю, что это не было бы проблемой начиная с наличия GNOME, подразумевает, что Вам уже установили Python.
xargs
, можно просто записать</path/to/file xargs apt-mark auto
; и это справится с любым пробельным разделением между именами пакета, не обязательно новыми строками (xargs
имеет проблемы заключения в кавычки, но имена пакета Debian не содержат проблематичного символа, таким образом, он в порядке здесь). Еще более простой методapt-mark auto $(cat /path/to/file)
(который, снова, работает, не требуя никакой специальной предосторожности, потому что имена пакета не содержат специальные символы). – Gilles 'SO- stop being evil' 13.07.2011, 00:06