我在使用bash的linux服务器上。我有一些看起来像
的数据20130101 Z27
20170101 F40
20170501UZ24
20160701BA27
20120411 A27
20170101 Z30
我完全有兴趣按字节位置= 8-11排序。
GNU sort
是否有办法按此字节范围排序?
我正在寻找类似于cut
与-b
的内容的类似选项,我可以在其中指定字节范围。
我可以编写一个Python脚本来执行此操作,但我宁愿将所有内容保存在一个简单的bash脚本中供其他人阅读和遵循。
答案 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进行排序。