假设您有一个未排序的文件,其内容如下:
identifier,count=Number
identifier, extra information
identifier, extra information
...我想对这个文件进行排序,以便对于每个id,先用计数写出行,然后用额外的信息写行。我只能使用带有选项-k1,1的排序unix命令,但可以稍微修改行以获得这类命令。
举个例子,
a,Count=1
a,giulio
aa,Count=44
aa,tango
aa,information
ee,Count=2
bb,que
f,Count=3
b,Count=23
bax,game
f,ee
c,Count=3
c,roma
b,italy
bax,Count=332
a,atlanta
bb,Count=78
c,Count=3输出应该是
a,Count=1
a,atlanta
a,giulio
aa,Count=44
aa,information
aa,tango
b,Count=23
b,italy
bax,Count=332
bax,game
bb,Count=78
bb,que
c,Count=3
c,roma
ee,Count=2
f,Count=3
f,ee但我明白:
aa,Count=44
aa,information
aa,tango
a,atlanta
a,Count=1
a,giulio
bax,Count=332
bax,game
bb,Count=78
bb,que
b,Count=23
b,italy
c,Count=3
c,Count=3
c,roma
ee,Count=2
f,Count=3
f,ee我尝试在标识符的末尾和/或计数字段和其他字符的开头添加空格,但这些方法都不起作用。
有关于如何执行这个排序的指针吗?
编辑:例如,如果考虑以a开头带有id的产品,其中一个产品的信息是‘亚特兰大’,出现在计数之前(但我希望计数出现在任何信息之前)。此外,bb应按ids的字母顺序在b之后。为了使我的问题更清楚:我如何获得按字母顺序排序的ID,对于给定的ID,计数行出现在其他ID之前。以及如何使用排序-k1,1 (这是我正在处理的组项目,我不能自由地更改排序命令)和可能更改内容(例如,我尝试在所有信息中添加一个'~‘,以便计数在前面)。
发布于 2015-02-07 23:40:19
您需要告诉排序,逗号用作字段分隔符。
sort -t, -k1,1对于ASCII排序,请确保LC_ALL=C、LANG和LANGUAGE未设置
https://stackoverflow.com/questions/28388653
复制相似问题