Мне нужно сделать скрипт, чтобы собрать информацию из 2-х файлов и отсортировать ее в другом. Запускаем с терминала

Вам необходимо загрузить файлы прошивки для вашего графического процессора и скопировать их в /lib/firmware/amdgpu. После этого ядро ​​должно иметь возможность загрузить их.

0
21.12.2019, 00:33
2 ответа

Дано

$ head kolokwium{1,2}.txt
==> kolokwium1.txt <==
Kowalski Jan 3
Nowak Adam 5
Malec Ewa 2

==> kolokwium2.txt <==
Malec Ewa 4
Kowalski Jan 2
Nowak Adam 3

затем с помощью Миллера

mlr --nidx sort -f 1,2 -n 3 then \
  nest --implode --values --across-records --nested-fs ' ' -f 3 kolokwium{1,2}.txt > kolokwia.txt

производит

$ cat kolokwia.txt 
Kowalski Jan 2 3
Malec Ewa 2 4
Nowak Adam 3 5
1
28.01.2020, 02:38

Я использовал data1для файла OP kolokwium1.txt, data2для файла OP kolokwium2.txtи dataвместо kolokwia.txtв качестве вывода.

Несколько способов сделать это. Некоторые полагаются исключительно на awk. Их, как правило, сложнее освоить, так как они включают в себя массивы.

Вот (очень ? )простое решение на основе joinв первом столбце с последующей выборочной печатью и сортировкой чисел с использованиемawk:

$ join -j 1  -t" " <(sort data1) <(sort data2) | awk '$5>$3 {print $1, $2, $3, $5} $3>$5 {print $1, $2, $5, $3}' >| data
$ cat data
Kowalski Jan 2 3
Malec Ewa 2 4
Nowak Adam 3 5

Пояснение:

  • joinопция-j 1:соединение в столбце 1 двух входных файлов
  • joinопция-t " ":использовать " " (пробел )в качестве разделителя полей ввода и вывода
  • нотация <(sort filename)называется подстановкой процесса. Здесь к выходным данным процесса сортировки можно обращаться по имени файла. Оба входных файла отсортированы в соответствии с требованиями join. Обратите внимание, что между <и левой скобкой (в подстановке процесса НЕ должно быть пробела.
  • Результат объединения сортируется по первому столбцу, а не по числам. Кроме того, имя каждого человека повторяется на 2-й и 4-й позициях.
  • Передайте приведенный выше результат в простую awkcmd и условно распечатайте поля 1,2,3,5 или 1,2,5,3, в зависимости от того, больше ли число в поле записи 5, чем число в поле записи 3 или наоборот.

ХТХ

0
28.01.2020, 02:38

Теги

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