Bash 将两个文件稳定地排序为一个文件,其中包含重复文件
我一直在尝试对两个文件进行排序并获得输出 对于文件1: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
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解决了这个问题