排序顺序以特定顺序排列此列表

排序顺序以特定顺序排列此列表

我知道这里有大量的排序问题,但我无法解决我的用例。

我正在尝试对 R 中的列表(在 Ubuntu 16.04 上)进行排序,但我束手无策!我一直在尝试弄乱LC_ALL=Ccollate设置,并且可以获得以不同方式排序的结果,但我无法获得我需要的结果。这就是我需要的:

2014_Actual / 2014_Target / 2014_Percent / 2015_Actual / 2015_Target / 2015_Percent

我在Windows中使用的技巧是删除下划线,因此: 2014_Actual / 2014_Target / 2014Percent / 2015_Actual / 2015_Target / 2015Percent,这是我的用户可以接受的。但显然这在 Linux 中不起作用,因为它忽略了下划线。

有人对如何在该级别获得上述排序顺序有任何想法吗LC_ALL

提前致谢。

编辑:增加清晰度:问题是当我在 Linux 中对以上内容进行排序时,它会忽略下划线并给出:
2014_Actual / 2014Percent / 2014_Target / 2015_Actual / 2015Percent / 2015_Target

答案1

我不确定我是否完全理解你的问题,但如果我在 Unix 中这样做,我会这样做

sed -e 's/Actual/1Actual/' -e 's/Target/2Target/' -e 's/Percent/3Percent/' |
    sort |
    sed -e 's/1Actual/Actual/' -e 's/2Target/Target/' -e 's/3Percent/Percent/'

相关内容