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
),区域设置肯定会影响某些数据的排序顺序。然而,很难看出区域设置会如何影响这一点——事实上,很难复制问题,更不用说解决它了(双关语有一半的意图)。这正是我所需要的。谢谢