sort排序的问题。
发表于 : 2013-04-04 22:45
关于排序的一个问题,搞了好几天没搞定,希望各位大神指教! 不胜感激!
问题描述: 有一个文件a.txt,内容如下:
host@:/opt/folder/file1 1 11 111 /opt/folder/file1
host@:/opt/folder/file2 2 22 111 /opt/folder/file2
host@:/opt/folder/file3 3 33 123 /opt/folder/file3
我现在想让以第四列降序重新排序, 但是保证如果有任意2行该列相等的话,不改变它们在文件中出现的先后顺序,也就是对文件中file1, 排序后希望它还在file2前。
我尝试过命令 cat a.txt | sort -nr k 4, 这样不行 虽然可以降序排列,但是会改变相等行在文件的先后次序,原因是
sort 命令会如果在当前列相等的话,会自动比较后面的列。
附上期望排序后结果:
host@:/opt/folder/file3 3 33 123 /opt/folder/file3
host@:/opt/folder/file1 1 11 111 /opt/folder/file1
host@:/opt/folder/file2 2 22 111 /opt/folder/file2
问题描述: 有一个文件a.txt,内容如下:
host@:/opt/folder/file1 1 11 111 /opt/folder/file1
host@:/opt/folder/file2 2 22 111 /opt/folder/file2
host@:/opt/folder/file3 3 33 123 /opt/folder/file3
我现在想让以第四列降序重新排序, 但是保证如果有任意2行该列相等的话,不改变它们在文件中出现的先后顺序,也就是对文件中file1, 排序后希望它还在file2前。
我尝试过命令 cat a.txt | sort -nr k 4, 这样不行 虽然可以降序排列,但是会改变相等行在文件的先后次序,原因是
sort 命令会如果在当前列相等的话,会自动比较后面的列。
附上期望排序后结果:
host@:/opt/folder/file3 3 33 123 /opt/folder/file3
host@:/opt/folder/file1 1 11 111 /opt/folder/file1
host@:/opt/folder/file2 2 22 111 /opt/folder/file2