我有两列数据需要排序:第一列(A)需要按字典顺序排序,对于包含相同列 A 字符串的任何行,我需要根据第二列中的内容对它们进行数字排序列(B)。
我在想 'sort -f'
,但这会使 B 列中的“12”出现在“2”之前。
编辑:不小心输入了列而不是行。
答案1
是的,使用-k
定义排序键的选项和n
指定数字排序的选项:
$ echo -e "a 13\nb 2\na 2" | sort -k1,1 -k2,2n
a 2
a 13
b 2
我有两列数据需要排序:第一列(A)需要按字典顺序排序,对于包含相同列 A 字符串的任何行,我需要根据第二列中的内容对它们进行数字排序列(B)。
我在想 'sort -f'
,但这会使 B 列中的“12”出现在“2”之前。
编辑:不小心输入了列而不是行。
是的,使用-k
定义排序键的选项和n
指定数字排序的选项:
$ echo -e "a 13\nb 2\na 2" | sort -k1,1 -k2,2n
a 2
a 13
b 2