稳定地将两个文件与重复项合二为一

Stable sorting two files into one with the duplicates

我一直在尝试对两个文件进行排序并获取输出。

对文件 1 说:

102310863||7097881||6845123||271640||06007709532577||||
102310875||7092992||6840818||023740||10034500635650||||

和文件 2:

102310863||7097881||6845193||271640||06007709532577||||
102310875||7092992||6840808||023740||10034500635650||||

期望的输出是:

102310863||7097881||6845123||271640||06007709532577||||
102310863||7097881||6845193||271640||06007709532577||||
102310875||7092992||6840818||023740||10034500635650||||
102310875||7092992||6840808||023740||10034500635650||||

我一直在尝试使用排序命令

sort  -t \| -n -k1,1 t1.txt  t2.txt

但它给了我输出

102310863||7097881||6845123||271640||06007709532577||||
102310863||7097881||6845193||271640||06007709532577||||
102310875||7092992||6840808||023740||10034500635650||||
102310875||7092992||6840818||023740||10034500635650||||

这不是我想要的,因为未保留原始文件顺序。

是否有任何其他方法来获得所需的输出?

使用 -s 标志执行稳定排序。

sort  -s -t \|  -k1,1 t1.txt  t2.txt

来自man sort

-s, --stable
stabilize sort by disabling last-resort comparison