После некоторых проб и ошибок, в конце концов, я заглянул в /var/log/syslog
и увидел некоторые странные вещи, такие как установщик, делающий запросы к указанному зеркалу с «неправильным» набором/кодовым именем, и мне стало интересно, откуда он извлекает это значение., поэтому я извлек ISO с bsdtar
, как я делал раньше, чтобы поместить файл preseed.cfg
. На этот раз я заметил, что есть скрытый каталог с именем .disk
, внутри которого находятся некоторые файлы конфигурации, которые программа установки, по-видимому, должна использовать для получения некоторых значений во время установки. Я изменил эти значения на нужные, затем изменил имя каталога dists/jessie
на dists/redebian
, воссоздал символические ссылки для stable
, unstable
и testing
, чтобы они указывали на redebian
, изменил файлы Release
в ISO , чтобы они содержали ту же информацию, что и мой репозиторий, а затем, наконец, пересчитал все md5sums.
Теперь debian-installer
признает опубликованное репозиторий действительным зеркалом.
После этого у меня все еще была проблема с установкой grub
, но я уверен, что в конце концов я ее решу.
Решение awk
, вероятно, самое короткое и лаконичное и, возможно, более быстрое для больших файлов, но оболочка может сделать и это. Вот один из способов.
Использование bash.
while read -ra line; do
printf '%s %s\n' "${line[1]}" "${line[3]}"
done < file1 > file2
В Bash есть опция -a
для встроенного чтения, которая создает массив для каждой строки, а цикл while позаботится о строках в файле. Единственным преимуществом этого решения является то, что оно не использует никаких внешних команд из оболочки. Более портативное решение потребует много PE.
Предположим, что поля разделены одним пробелом:
cut -d" " -f2,4 file1 > file2