Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
Unix:按最后一行数排序_Unix - Fatal编程技术网

Unix:按最后一行数排序

Unix:按最后一行数排序,unix,Unix,如何按一行中的最后一个数字对文件进行排序 假设每行的最后一个字符是一个数字。输入: facebook.com/pageA,2,11,11 facebook.com/pageB,0,0,20 facebook.com/pageC,0,0,6 facebook.com/pageD,1,22,239 期望输出: facebook.com/pageC,0,0,6 facebook.com/pageA,2,11,11 facebook.com/pageB,0,0,20 facebook.com/page

如何按一行中的最后一个数字对文件进行排序

假设每行的最后一个字符是一个数字。输入:

facebook.com/pageA,2,11,11
facebook.com/pageB,0,0,20
facebook.com/pageC,0,0,6
facebook.com/pageD,1,22,239
期望输出:

facebook.com/pageC,0,0,6
facebook.com/pageA,2,11,11
facebook.com/pageB,0,0,20
facebook.com/pageD,1,22,239

帮助???

您可以使用
排序

sort -n -t, -k4 INPUT

使用
rev
反转每一行,然后排序,然后重新反转:

rev < $file | sort | rev
rev<$file | sort | rev

如果您的输入文件每行有不同的列,则可以将最后一列作为第一列,按其排序,然后将其删除

awk '{print($NF,$0)}' FS=, OFS=, inputFile | sort -t, -nk1 | cut -f2- -d,

假设行具有相同数量的逗号分隔列。您可以阅读
mansort
以了解如何指定分隔符以及如何进行数字排序。您的示例与您的问题不匹配。您想要哪一种:按最后一位数字排序还是按最后一个数字排序?最后一个数字。。但是数字和数字有什么区别呢?他们的意思是一样的,对吗?@user1899415,不是一样的。数字是数字的一个元素(字符)。。抱歉造成混淆,问题已编辑。假定输入有4列。叹气。。。OP的例子与问题不符。我回答的是问题,不是例子。显然,目标是按行中的最后一个数字排序,而不是按行中的最后一个数字排序。很难给人们想要的而不是他们想要的。这不会产生OP想要的输出,因为最后一个数字是颠倒和比较的。OP写的是“数字”,但他想要的是数字。读我的评论,就在你的上面。