Mintsources не работает по неизвестной причине

Ваша проблема заключается в том, что вы затираете выходной файл на каждой итерации цикла, оставляя только самые последние изменения в outputи ни одно из более ранних.

Вместо этого вы можете легко преобразовать файл templateв набор команд sed:

$ awk '{ printf("s/%s/%s/g\n", $1, $2) }' template
s/MSTRG.1/AT1G01030/g
s/MSTRG.2/AT1G01010/g
s/MSTRG.3/AT1G01035/g

... а затем примените их к своему файлу:

$ awk '{ printf("s/%s/%s/g\n", $1, $2) }' template | sed -f - input
gene_id "AT1G01030";
gene_id "AT1G01030";
gene_id "AT1G01010";
gene_id "AT1G01035";

Некоторые реализации sedне распознают -как стандартный ввод. Чтобы использовать этот подход с таким sed, замените -f -на -f /dev/stdin.

Или вы можете просто сделать все это вawk:

$ awk 'FNR == NR { pat[$1] = $2; next } { for (p in pat) gsub(p, pat[p]); print }' template input
gene_id "AT1G01030";
gene_id "AT1G01030";
gene_id "AT1G01010";
gene_id "AT1G01035";

Обратите внимание, что во всех приведенных выше вариантах используется то, что находится в первом столбце templateв качестве регулярного выражения , что означает, что.(точка )будет соответствовать любому персонаж.

0
17.11.2020, 19:26
1 ответ

Решено, я удалил все двойные пробелы (и дополнительные пробелы )из этого файла:

/etc/apt/sources.list.d/official-package-repositories.list

Я вспомнил, что отредактировал его по своему вкусу, добавив больше пробелов для выравнивания столбцов. А также объединить некоторые записи.

Эти комбинации, очевидно, не имеют значения, но дополнительные пробелы действуют от (до mintsources, а неapt).


В итоге это выглядит так:

deb http://packages.linuxmint.com ulyana main upstream import backport 
deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu focal partner

После этого я могу запустить mintsourcesи как обычный пользователь, и как root.

1
18.03.2021, 22:48

Теги

Похожие вопросы