仅使用 k1,1 执行排序
Performing a sort using k1,1 only
假设您有一个包含以下内容的未排序文件:
identifier,count=Number
identifier, extra information
identifier, extra information
...
我想对这个文件进行排序,以便对于每个 id,首先写入包含计数的行,然后写入包含额外信息的行。我只能使用带有选项 -k1,1 的 sort 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
我尝试在计数字段的开头和其他字符的标识符 and/or 的末尾添加空格,但这些方法中的 none 有效。
关于如何执行此排序的任何指示?
编辑:
例如,如果您考虑 ID 以 a 开头的产品,其中一个具有信息 'atlanta' 并出现在 Count 之前(但我希望 Count 出现在任何信息之前)。此外,bb 应该按 id 的字母顺序排在 b 之后。为了让我的问题更清楚:如何让 ID 按字母顺序排序,这样对于给定的 ID,带有 Count 的行出现在其他行之前。以及如何使用 sort -k1,1(这是我正在处理的一个小组项目,我不能随意更改排序命令)并可能更改内容(例如,我尝试在所有信息,以便计数在之前)
你需要告诉排序,逗号用作字段分隔符
sort -t, -k1,1
对于 ASCII 排序,确保 LC_ALL=C 和 LANG 和 LANGUAGE 未设置
假设您有一个包含以下内容的未排序文件:
identifier,count=Number
identifier, extra information
identifier, extra information
...
我想对这个文件进行排序,以便对于每个 id,首先写入包含计数的行,然后写入包含额外信息的行。我只能使用带有选项 -k1,1 的 sort 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
我尝试在计数字段的开头和其他字符的标识符 and/or 的末尾添加空格,但这些方法中的 none 有效。
关于如何执行此排序的任何指示?
编辑: 例如,如果您考虑 ID 以 a 开头的产品,其中一个具有信息 'atlanta' 并出现在 Count 之前(但我希望 Count 出现在任何信息之前)。此外,bb 应该按 id 的字母顺序排在 b 之后。为了让我的问题更清楚:如何让 ID 按字母顺序排序,这样对于给定的 ID,带有 Count 的行出现在其他行之前。以及如何使用 sort -k1,1(这是我正在处理的一个小组项目,我不能随意更改排序命令)并可能更改内容(例如,我尝试在所有信息,以便计数在之前)
你需要告诉排序,逗号用作字段分隔符
sort -t, -k1,1
对于 ASCII 排序,确保 LC_ALL=C 和 LANG 和 LANGUAGE 未设置