Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 将两个文件稳定地排序为一个文件,其中包含重复文件_Bash_Sorting_Unix_Awk_Gawk - Fatal编程技术网

Bash 将两个文件稳定地排序为一个文件,其中包含重复文件

Bash 将两个文件稳定地排序为一个文件,其中包含重复文件,bash,sorting,unix,awk,gawk,Bash,Sorting,Unix,Awk,Gawk,我一直在尝试对两个文件进行排序并获得输出 对于文件1: 102310863||7097881||6845123||271640||06007709532577|||| 102310875||7092992||6840818||023740||10034500635650|||| 和文件2: 102310863||7097881||6845193||271640||06007709532577|||| 102310875||7092992||6840808||023740||1003450063

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

对于文件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命令

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
人工分拣

-s、 --稳定
通过禁用最后的比较来稳定排序


但请检查第1列是否指定了-k。。所以我得到了错误的输出。我可以理解@kostya,但是我如何格式化代码,使输出不受影响?对不起,我最后的评论是错误的。我不明白这个问题。可能您正在寻找“-s”选项(通过禁用最后手段比较来稳定排序)是。。太好了。。sort-s解决了这个问题