Как я могу прочитать текстовый файл построчно, отсортировать их по правильным переменным и записать их в другой файл?

Где-то в строке 2297 происходит сбой:

Jul 24 00:36:00 lisbook audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Jul 24 00:36:00 lisbook kernel: audit: type=1131 audit(1500849360.297:92): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Jul 24 00:36:04 lisbook mbpfan[733]: Old Temp 79: New Temp: 79, Fan Speed: 2000
Jul 24 00:36:04 lisbook mbpfan[733]: Sleeping for 7 seconds
Jul 24 00:36:09 lisbook systemd[1]: dnf-system-upgrade.service: Main process exited, code=exited, status=1/FAILURE
Jul 24 00:36:09 lisbook systemd[1]: dnf-system-upgrade.service: Failed to load environment files: No such file or directory
Jul 24 00:36:09 lisbook systemd[1]: dnf-system-upgrade.service: Failed to run 'stop-post' task: No such file or directory
Jul 24 00:36:09 lisbook audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=dnf-system-upgrade comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
Jul 24 00:36:09 lisbook systemd[1]: dnf-system-upgrade.service: Unit entered failed state.
Jul 24 00:36:09 lisbook kernel: audit: type=1131 audit(1500849369.956:93): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=dnf-system-upgrade comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
Jul 24 00:36:09 lisbook systemd[1]: dnf-system-upgrade.service: Failed with result 'resources'.
Jul 24 00:36:09 lisbook systemd[1]: Rebooting as result of failure.

Судя по этой справочной странице ), это связано с вашим аварийным выключателем WiFi (. Можете ли вы отключить или удалить эту службу и повторить попытку? Затем переустановить, когда закончите?

(Я понимаю, что это было бы лучше, если бы это был комментарий, но он слишком длинный и имеет странное форматирование.)

1
15.04.2019, 23:25
2 ответа

Мне трудно понять, какой из двух потенциальных вопросов вы задаете -, поэтому я дам общий план, и если я доберусь до этого, я изучу фактические команды терминала / оболочки. вы можете использовать завтра утром (и тогда расширить мой ответ! ).

Таким образом, ваш вопрос можно понимать как

  • a ):Сортировать файл из «построчного» расположения в «таблицу -как» (в вашем примере это a c омма-s разделенный файл-v alue [также известный как csv ] )расположение. Это довольно просто и потребует структуры цикла (, т. е. повторения одного и того же набора инструкций для каждой записи ), и внутри этого вы должны взять значения для 4 строк, составляющих запись (, например " John", "NY", "2019", "APR" )и присоедините их -по очереди -к новой строке, поставив запятые ("," )между значениями.
  • b ):Отсортируйте значения файла в соответствии с типом переменной и соберите все вместе в хорошо отсортированном «табличном -подобном» расположении (, например, в виде файла csv, с выводом, выглядящим много то же, что описано выше ). Это немного сложнее/сложнее, но пока ваш диапазон значений/переменных ограничен -, как в вашем примере (12 трехбуквенных сокращений для месяцев, 50 двухбуквенных сокращений для штатов США -, и т. д. ), затем вы можете сравнить каждое из ваших значений с возможным набором/диапазоном переменных и определить (относительно надежно ), к какому типу относится эта переменная. И затем, конечно же, вы соединяете их вместе, как бусины на нитке для вашего нового файла, просто используя немного больше магии/клея, чем описано выше, чтобы поместить их в нужное место (, то есть, предполагая, что я был здесь, что значения, принадлежащие одной записи, не всегда находятся в одном и том же порядке ).

На этом пока все -Было бы неплохо узнать, какой из двух приведенных выше вопросов вы имели в виду, прежде чем я перейду к примеру ввода терминала/оболочки :D !

С уважением,Шон Шерер

1
27.01.2020, 23:41

Кажется, что здесь не используется какая-либо сортировка -только де -сериализация в фиксированное число (4 )столбцов. Вы можете использовать

paste -d, - - - - < file

или

pr -aT -s, -4 < file

или

awk '{ORS = NR%4 ? "," : "\n"} 1' file

Пр.

$ awk 'BEGIN{print "Name,Location,Year,Month"} {ORS = NR%4 ? "," : "\n"} 1' file
Name,Location,Year,Month
John,NY,2019,APR
Mark,SC,2019,JAN
Ava,CA,2018,AUG
0
27.01.2020, 23:41

Теги

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