Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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
Linux 使用bash按第5列对csv文件进行排序_Linux_Bash - Fatal编程技术网

Linux 使用bash按第5列对csv文件进行排序

Linux 使用bash按第5列对csv文件进行排序,linux,bash,Linux,Bash,文件看起来像 5.1,3.5,1.4,0.2,Banana 4.9,3.0,1.4,0.6,Apple 4.8,2.8,1.3,1.2,Apple 我需要它 4.9,3.0,1.4,0.2,Apple 4.8,2.8,1.3,1.2,Apple 5.1,3.5,1.4,0.2,Banana # sort -t . -nrk2 sorted.csv 4.9,3.0,1.4,0.6,Apple 4.8,2.8,1.3,1.2,Apple 5.1,3.5,1.4,0.2,Banana 我一直在

文件看起来像

5.1,3.5,1.4,0.2,Banana
4.9,3.0,1.4,0.6,Apple
4.8,2.8,1.3,1.2,Apple
我需要它

4.9,3.0,1.4,0.2,Apple
4.8,2.8,1.3,1.2,Apple
5.1,3.5,1.4,0.2,Banana
# sort -t . -nrk2 sorted.csv 
4.9,3.0,1.4,0.6,Apple
4.8,2.8,1.3,1.2,Apple
5.1,3.5,1.4,0.2,Banana
我一直在尝试使用

sort -t, -k5 file.csv > sorted.csv
它所做的一切就是成功

5.1,3.5,1.4,0.2,Banana
4.8,2.8,1.3,1.2,Apple
4.9,3.0,1.4,0.6,Apple

我该怎么做呢?它似乎根本没有对它进行排序。

GNU排序对区域设置敏感,这可能会导致奇怪。尝试以下方法,看看是否会有所不同:

LC_ALL=C sort -t, -k5 file.csv > sorted.csv

这就是你想要的吗

4.9,3.0,1.4,0.2,Apple
4.8,2.8,1.3,1.2,Apple
5.1,3.5,1.4,0.2,Banana
# sort -t . -nrk2 sorted.csv 
4.9,3.0,1.4,0.6,Apple
4.8,2.8,1.3,1.2,Apple
5.1,3.5,1.4,0.2,Banana

不能复制。你的命令在这里运行良好。这个问题似乎是离题的,因为它是关于bash的,属于on。这里也是。“对我来说还算不错。”科尔约翰逊·巴什的话题是这样的。看一看这张照片tag@mrm9084也不能复制。您是否尝试删除所有列并仅对香蕉和苹果执行排序?它起作用了吗?欢迎来到堆栈溢出。请尽快阅读这一页。您是对的,偶尔(甚至总是,如果您的区域设置像我一样设置为
en_US.UTF-8
),区域设置肯定会影响某些数据的排序顺序。然而,很难看出区域设置会如何影响这一点——事实上,很难复制问题,更不用说解决它了(双关语有一半的意图)。这正是我所需要的。谢谢