按字符数和字母顺序对列表进行排序

时间:2014-10-21 13:50:09

标签: bash sorting

使用bash我想按照第一和第二顺序标准对文本字符串列表进行排序:

  1. 文本字符串中的字符数;字符串最少的字符
  2. 丹麦字母顺序与英语相同除了字母æøå最后(z之后)
  3. 示例:

    我想要这个清单:

    aabb
    ccc
    aaaa
    ddd
    dgg
    øøøø
    aa
    cc
    ab
    

    要分类:

    aa
    ab
    cc
    ccc
    ddd
    dgg
    aaaa
    aabb
    øøøø
    

    如何实现?

2 个答案:

答案 0 :(得分:1)

使用bash,sort and cut:

while read -r l; do echo "${#l} $l"; done < filename | sort -n | cut -d " " -f 2-

输出:

aa
ab
cc
ccc
ddd
dgg
aaaa
aabb
øøøø

答案 1 :(得分:1)

您需要Schwartzian transform

LC_SORT=da_DK perl -lpe 'print (len(), "\t")' input |
sort -k1n -k2,2 |
cut -f2- > output