Как записать 2-й и 4-й столбцы в другой файл

После некоторых проб и ошибок, в конце концов, я заглянул в /var/log/syslogи увидел некоторые странные вещи, такие как установщик, делающий запросы к указанному зеркалу с «неправильным» набором/кодовым именем, и мне стало интересно, откуда он извлекает это значение., поэтому я извлек ISO с bsdtar, как я делал раньше, чтобы поместить файл preseed.cfg. На этот раз я заметил, что есть скрытый каталог с именем .disk, внутри которого находятся некоторые файлы конфигурации, которые программа установки, по-видимому, должна использовать для получения некоторых значений во время установки. Я изменил эти значения на нужные, затем изменил имя каталога dists/jessieна dists/redebian, воссоздал символические ссылки для stable, unstableи testing, чтобы они указывали на redebian, изменил файлы Releaseв ISO , чтобы они содержали ту же информацию, что и мой репозиторий, а затем, наконец, пересчитал все md5sums.

Теперь debian-installerпризнает опубликованное репозиторий действительным зеркалом.

После этого у меня все еще была проблема с установкой grub, но я уверен, что в конце концов я ее решу.

2
16.01.2020, 04:43
3 ответа
awk '{print $2, $4}' file1 > file2
7
27.01.2020, 21:49

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

Использование bash.

while read -ra line; do
  printf '%s %s\n' "${line[1]}" "${line[3]}"
done < file1 > file2

В Bash есть опция -aдля встроенного чтения, которая создает массив для каждой строки, а цикл while позаботится о строках в файле. Единственным преимуществом этого решения является то, что оно не использует никаких внешних команд из оболочки. Более портативное решение потребует много PE.

3
27.01.2020, 21:49

Предположим, что поля разделены одним пробелом:

cut -d" " -f2,4 file1 > file2
5
27.01.2020, 21:49

Теги

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