按字节位置排序

时间:2017-04-04 22:59:07

标签: linux bash sorting gnu gnu-coreutils

我在使用bash的linux服务器上。我有一些看起来像

的数据
20130101 Z27
20170101 F40
20170501UZ24
20160701BA27
20120411 A27
20170101 Z30

我完全有兴趣按字节位置= 8-11排序。 GNU sort是否有办法按此字节范围排序?

我正在寻找类似于cut-b的内容的类似选项,我可以在其中指定字节范围。

我可以编写一个Python脚本来执行此操作,但我宁愿将所有内容保存在一个简单的bash脚本中供其他人阅读和遵循。

1 个答案:

答案 0 :(得分:3)

你可以这样做:

$ sort -t $'\n' -k 1.8,1.11 infile
20120411 A27
20160701BA27
20170101 F40
20170501UZ24
20130101 Z27
20170101 Z30

-t $'\n'告诉sort字段分隔符是换行符,即每行只包含一个字段。

-k 1.8,1.11表示在字段1中使用字符8到11进行排序。