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