-2

我有 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

我想在 Files 中附加所有 File1 的内容(基于升序的日期)

结果:

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
4

2 回答 2

2

您可以使用以下 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.txtf2.txt是两个文件名。

于 2018-10-04T05:27:29.450 回答
0

你可以试试下面的命令

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

使用数组 a storefile1的数据,FNRa的键。

于 2018-10-04T11:33:09.280 回答