gpt4 book ai didi

shell - 如何将文件的行按从末尾开始的第二个单词排序

转载 作者:行者123 更新时间:2023-12-04 13:26:18 25 4
gpt4 key购买 nike

我想根据 space 之前的最后一个数字对行进行排序.这是一个简化的例子:

c3_abl_eerf_14 sasw
a.bla_haha_2 dnkww
s.hey_3 ddd

这是我想要的结果:
a.bla_haha_2 dnkww
s.hey_3 ddd
c3_abl_eerf_14 sasw

我不知道怎么做,也许是通过命令 sort ?而且,有时我使用 sort命令,它可能会错误地对待小于 2 的 14,我不希望这种情况发生。

最佳答案

此命令链适用于您的示例:

sed -r 's/.*_([0-9]+) .*/\1 &/' file|sort -n|sed 's/[^ ]* //'

这个想法是
  • 首先提取数字,添加到行首
  • 按此编号对所有行进行排序
  • 删除号码

  • 更新

    按行中的最后一个数字排序,无论数字在哪里:
    awk -F'[^0-9]+' '{$0=(length($NF)?$NF:$(NF-1)) OFS $0}7' file|sort -n|sed 's/[^ ]* //'

    关于shell - 如何将文件的行按从末尾开始的第二个单词排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37696598/

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