我有一个包含如下内容的文件:
666500872101_002.log
738500861101_003.log
738500861101_002.log
666500872101_001.log
741500881101_001.log
738500861101_001.log
741500881101_002.log
666500872101_003.log
741500881101_003.log
666500872101_004.log
我需要首先根据字段 5 到 8 中的值(即 741500881101_003.log)对行进行排序,然后根据日志的部件号(即 741500881101_003.log 以获得如下内容:
738500861101_001.log
738500861101_002.log
738500861101_003.log
666500872101_001.log
666500872101_002.log
666500872101_003.log
666500872101_004.log
741500881101_001.log
741500881101_002.log
741500881101_003.log
使用sort
无法获得任何好的结果,请帮忙。
最佳答案
您可以使用带有以下选项的sort
命令:
sort -n -k1.5,1.8 -n -k1.14,1.16 fileToSort.log
选项:
-n
用于数字排序-k1.5,1.8
和-k1.14,1.16
定义排序键
示例:
$ sort -n -k1.5,1.8 -n -k1.14,1.16 fileToSort
738500861101_001.log
738500861101_002.log
738500861101_003.log
666500872101_001.log
666500872101_002.log
666500872101_003.log
666500872101_004.log
741500881101_001.log
741500881101_002.log
741500881101_003.log
关于linux - 根据字符串中的特定值进行排序。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50284502/