Объединение 2 отсортированных файлов (с похожим содержимым) на основе метки времени в шеллскрипте - PullRequest
0 голосов
/ 04 октября 2018

У меня есть 2 идентичных файла с содержанием ниже:

Файл1:

1,Abhi,Ban,20180921T09:09:01,EmpId1,SalaryX
4,Bbhi,Dan,20180922T09:09:03,EmpId2,SalaryY
7,Cbhi,Ean,20180923T09:09:05,EmpId3,SalaryZ
9,Dbhi,Fan,20180924T09:09:09,EmpId4,SalaryQ

Файл2:

11,Ebhi,Gan,20180922T09:09:02,EmpId5,SalaryA
12,Fbhi,Han,20180923T09:09:04,EmpId6,SalaryB
3,Gbhi,Ian,20180924T09:09:06,EmpId7,SalaryC
5,Hbhi,Jan,20180925T09:09:08,EmpId8,SalaryD

Я хочу добавить все содержимое файла1 в файлы (по дате в порядке возрастания)

Результат:

1,Abhi,Ban,20180921T09:09:01,EmpId1,SalaryX
11,Ebhi,Gan,20180922T09:09:02,EmpId5,SalaryA
4,Bbhi,Dan,20180922T09:09:03,EmpId2,SalaryY
12,Fbhi,Han,20180923T09:09:04,EmpId6,SalaryB
7,Cbhi,Ean,20180923T09:09:05,EmpId3,SalaryZ
3,Gbhi,Ian,20180924T09:09:06,EmpId7,SalaryC
9,Dbhi,Fan,20180924T09:09:09,EmpId4,SalaryQ
5,Hbhi,Jan,20180925T09:09:08,EmpId8,SalaryD

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы можете попробовать следующую команду

awk 'FNR==NR{a[FNR]=$0;next}{print a[FNR]"\n"$0}' file1 file2

с массивом хранилища данных file1, FNR - ключ a.

0 голосов
/ 04 октября 2018

Для этого можно использовать конструкцию ниже AWK: -

awk -F "," 'NR==FNR{print $4, $0;next} NR>FNR{print $4, $0;}' f1.txt f2.txt | sort | awk '{print $2}'

Объяснение: -

Префикс столбца даты ($4) перед каждой строкой ($0) для обоихфайлы.

sort это.И тогда print $2, который является целой линией.

Эти напечатанные строки будут отсортированы по дате.

f1.txt и f2.txt - это два имени файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...