gpt4 book ai didi

linux - Unix 基于分号对行进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:45 26 4
gpt4 key购买 nike

我尝试对以下文件进行排序:

$ cat testfile
ZBOX-BATCH-SAMEDI;CMC10
ZBOX-BATCH-SAMEDI_D1;HEB05
ZBOX-BATCH-SAMEDI;BMD15
ZBOX-BATCH-SAMEDI_D3;HEB03
ZBOX-BATCH-SAMEDI_D3_M1;ODP47
ZBOX-BATCH-SAMEDI_D1_M1;TER23
ZBOX-BATCH-SAMEDI_D3;HEB02
ZBOX-BATCH-SAMEDI_D1;HEB02
ZBOX-BATCH-SAMEDI;DEA11
ZBOX-BATCH-SAMEDI;DEA11A

然后我得到:

$ sort testfile
ZBOX-BATCH-SAMEDI;BMD15
ZBOX-BATCH-SAMEDI;CMC10
ZBOX-BATCH-SAMEDI_D1;HEB02
ZBOX-BATCH-SAMEDI_D1;HEB05
ZBOX-BATCH-SAMEDI_D1_M1;TER23
ZBOX-BATCH-SAMEDI_D3;HEB02
ZBOX-BATCH-SAMEDI_D3;HEB03
ZBOX-BATCH-SAMEDI_D3_M1;ODP47
ZBOX-BATCH-SAMEDI;DEA11
ZBOX-BATCH-SAMEDI;DEA11A

然而,我期待:

ZBOX-BATCH-SAMEDI;BMD15
ZBOX-BATCH-SAMEDI;CMC10
ZBOX-BATCH-SAMEDI;DEA11
ZBOX-BATCH-SAMEDI;DEA11A
...

也就是说,我希望所有在第一个分号之前带有字符串 ZBOX-BATCH-SAMEDI 的行排在第一位,然后是带有 ZBOX-BATCH-SAMEDI_D1 的行等

我查看了 man sort 并尝试了不同的选项,例如 -g-k 以及 -t,但我没有成功。我该怎么做?

最佳答案

只需告诉 sort 分隔符是 ; 并且您想根据第二列进行排序:

sort -t";" -k2 file

它返回:

ZBOX-BATCH-SAMEDI;BMD15
ZBOX-BATCH-SAMEDI;CMC10
ZBOX-BATCH-SAMEDI;DEA11
ZBOX-BATCH-SAMEDI;DEA11A
ZBOX-BATCH-SAMEDI_D1;HEB02
ZBOX-BATCH-SAMEDI_D3;HEB02
ZBOX-BATCH-SAMEDI_D3;HEB03
ZBOX-BATCH-SAMEDI_D1;HEB05
ZBOX-BATCH-SAMEDI_D3_M1;ODP47
ZBOX-BATCH-SAMEDI_D1_M1;TER23

关于linux - Unix 基于分号对行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30503433/

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