Переместить определенные файлы в другую папку на основе частичного шаблона в файле.txt

Лучший способ вручную удалить пин-код пакета apt-listbugs— это удалить его из /etc/apt/preferences.d/apt-listbugs. Это единственное место, где apt-listbugsхранит информацию о пинах, поэтому нет риска несогласованности в результате удаления пинов там. Убедитесь, что вы удалили строки Package, Pinи Pin-Priorityвместе со всеми соответствующими строками Explanation.

apt-listbugsпринимает во внимание ignore_bugsперед тем, как спрашивает пользователя, что делать с ошибками, присутствующими в пакетах, которые нужно установить (или обновить ), он не обрабатывает это при проверке того, осталась ли ошибка в закрепленном пакете. применяется.

0
05.08.2020, 19:38
1 ответ

Ваш файл stable.txt, вероятно, был создан или отредактирован в системе Windows, где новая строка представлена ​​последовательностью возврата каретки + перевода строки (, часто упоминаемой с использованием аббревиатурыCRLFили escape-последовательность\r\n).

Например, предположим, что этот образец файла:

printf '%s\r\n' P_76 P_201 >stable.txt

После того, как скрипт прочитает первую строку, подстановочное выражение *"$P"*.imgничему не соответствует (, если имена ваших файлов на самом деле не содержат символы возврата каретки )и, если параметрnullglob(или эквивалентный параметр )не указан на самом деле значение fравно *P_76\r*.img. Когда отображается mv - "$f" "./stable/$f", два символа CRзаставляют последующий текст вставляться в начало строки, перезаписывая то, что уже было там.

Вы можете проверить свои файлы на наличиеCRLFпоследовательностей новой строки с помощью

$ cat -v stable.txt
P_76^M
P_201^M

или

$ od -An -c stable.txt
   P   _   7   6  \r  \n   P   _   2   0   1  \r  \n

или

$ file stable.txt
stable.txt: ASCII text, with CRLF line terminators

И вы можете преобразовать их в формат Unix, LF -с завершением с помощью (среди других способов):

$ dos2unix stable.txt

См. также:

0
18.03.2021, 23:14

Теги

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