gpt4 book ai didi

bash - 根据第三列的数字排序,然后是第一列的最后一个字符(非固定长度)字母数字排序,在 bash 中没有固定的分隔符

转载 作者:行者123 更新时间:2023-11-29 09:46:54 24 4
gpt4 key购买 nike

我正在尝试根据第一个第三列的数字然后是第一列的最后一个字符对具有第三列的文本文件进行排序。这是一个例子:

AB2 S 12
ABRT6 E 23
A3 S 2
ABC5 E 34
ABRT4 S 23

预期的输出应该是:

A3 S 2
AB2 S 12
ABRT4 S 23
ABRT6 E 23
ABC5 E 34

我查看了相关问题,但所有问题都假设第一列中数字部分的长度具有固定索引,或者第一列中字符和数字之间存在已知分隔符。现在我正在尝试以下命令,但当第三列相同时,它无法根据第一列进行排序。有什么建议吗?

sort -k3,3n -k1,1

最佳答案

可以使用sed在最后一个字符前插入一个空格,然后排序,再次使用sed去掉插入的空格:

sed 's/\(.\) / \1 /' input \
| sort -k4,4n -k2,2 \
| sed 's/ //'

关于bash - 根据第三列的数字排序,然后是第一列的最后一个字符(非固定长度)字母数字排序,在 bash 中没有固定的分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34364234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com