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_Columnsorting_Stability - Fatal编程技术网

Bash 仅按前两列对文件排序,并保持输入顺序,以防列具有相同的值

Bash 仅按前两列对文件排序,并保持输入顺序,以防列具有相同的值,bash,sorting,columnsorting,stability,Bash,Sorting,Columnsorting,Stability,我有一个输入文件,其中的行我只想按前两列排序。我想知道在bash中是否有使用sort命令的方法 例如输入文件: cat checkstart.txt dev XCUBOBS149 /etc/init.d/DSEngine_srv dev XCUBOBS150 /etc/init.d/DSEngine_srv dev XCUBOBS149 NO_LINKS_TO_STARTSCRIPTS dev XCUBOBS149 ufabric:x:46000:46000::/home/ufabric:/bi

我有一个输入文件,其中的行我只想按前两列排序。我想知道在bash中是否有使用sort命令的方法

例如输入文件:

cat checkstart.txt

dev XCUBOBS149 /etc/init.d/DSEngine_srv
dev XCUBOBS150 /etc/init.d/DSEngine_srv
dev XCUBOBS149 NO_LINKS_TO_STARTSCRIPTS
dev XCUBOBS149 ufabric:x:46000:46000::/home/ufabric:/bin/bash
dev XCUBOBS149 export JAVA_HOME=/soft/jdk/jdk1.7.0_79/
我正试着和你谈谈

sort-b-k1,2 checkstart.txt

dev XCUBOBS149 /etc/init.d/DSEngine_srv
dev XCUBOBS150 /etc/init.d/DSEngine_srv
dev XCUBOBS149 NO_LINKS_TO_STARTSCRIPTS
dev XCUBOBS149 ufabric:x:46000:46000::/home/ufabric:/bin/bash
dev XCUBOBS149 export JAVA_HOME=/soft/jdk/jdk1.7.0_79/
但结果并不是我所期望的,因为它按字母数字顺序对所有行进行排序:

我希望得到如下结果文件:

您正在寻找排序算法<代码>排序提供了一个。您可以使用
-s
选项启用它

$ sort -s -k1,2 checkstart.txt
dev XCUBOBS149 /etc/init.d/DSEngine_srv
dev XCUBOBS149 NO_LINKS_TO_STARTSCRIPTS
dev XCUBOBS149 ufabric:x:46000:46000::/home/ufabric:/bin/bash
dev XCUBOBS149 export JAVA_HOME=/soft/jdk/jdk1.7.0_79/
dev XCUBOBS150 /etc/init.d/DSEngine_srv

非常感谢@Socowi,这正是我想要的!
$ sort -s -k1,2 checkstart.txt
dev XCUBOBS149 /etc/init.d/DSEngine_srv
dev XCUBOBS149 NO_LINKS_TO_STARTSCRIPTS
dev XCUBOBS149 ufabric:x:46000:46000::/home/ufabric:/bin/bash
dev XCUBOBS149 export JAVA_HOME=/soft/jdk/jdk1.7.0_79/
dev XCUBOBS150 /etc/init.d/DSEngine_srv