【发布时间】:2021-09-19 08:20:19
【问题描述】:
问候。 我请需要在一个文本文件中对行进行排序,该文本文件有 11 个以逗号分隔的字段。
- 第 10 列包含格式为 'ddmmyy' 的日期
- 第 1 列包含格式为 'hhmmss.sss' 的时间戳
- 排序标准 1,按第 10 列排序,但首先按年,然后按月,然后按天, 就像日期格式是 'yymmdd' 而不是 'ddmmyy'
-排序标准2,按第2列排序,包含时间戳。
这是一个示例文件
$GPSACP: 100054.764,1056.0063N,00002.9733E,1.75,91.0,3,236.46,0.40,0.22,280521,05
$GPSACP: 140054.764,1056.0063N,00002.9733E,1.75,91.0,3,236.46,0.40,0.22,160621,05
$GPSACP: 210038.264,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,160621,03
$GPSACP: 210038.265,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,160615,03
$GPSACP: 100038.265,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,280717,03
$GPSACP: 100038.265,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,280518,03
$GPSACP: 210039.264,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,280521,03
$GPSACP: 211054.764,1057.0063N,00002.9733E,1.75,91.0,3,236.46,0.40,0.22,280521,05
$GPSACP: 211054.764,1056.0063N,00002.9733E,1.75,91.0,3,236.46,0.40,0.22,160621,05
$GPSACP: 210538.264,1026.4148N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,160614,03
$GPSACP: 210538.265,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,160621,03
$GPSACP: 211638.265,1026.5147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,280521,03
$GPSACP: 211539.264,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,280521,03
这就是我希望得到的结果:
$GPSACP: 210538.264,1026.4148N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,160614,03
$GPSACP: 210038.265,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,160615,03
$GPSACP: 100038.265,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,280717,03
$GPSACP: 100038.265,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,280518,03
$GPSACP: 100054.764,1056.0063N,00002.9733E,1.75,91.0,3,236.46,0.40,0.22,280521,05
$GPSACP: 211638.265,1026.5147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,280521,03
$GPSACP: 211539.264,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,280521,03
$GPSACP: 210039.264,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,280521,03
$GPSACP: 211054.764,1057.0063N,00002.9733E,1.75,91.0,3,236.46,0.40,0.22,280521,05
$GPSACP: 140054.764,1056.0063N,00002.9733E,1.75,91.0,3,236.46,0.40,0.22,160621,05
$GPSACP: 210038.264,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,160621,03
$GPSACP: 210538.265,1026.4147N,00129.9725E,3.75,87.0,3,43.87,2.58,1.39,160621,03
$GPSACP: 211054.764,1056.0063N,00002.9733E,1.75,91.0,3,236.46,0.40,0.22,160621,05
我想使用 bash 排序,但我不知道如何以不同的顺序处理日期。
任何帮助表示赞赏。
谢谢。马里奥。
【问题讨论】:
-
文件的每一行是否以文字字符串
$GPSACP:开头?如果不是,请更新问题以显示仅文件的内容;你提到想使用sort...请用你迄今为止尝试过的内容更新问题 -
您的示例输出似乎将第 6 行和第 7 行放在错误的位置。 (大概不应该出现空行?)
-
$GPSACP: 前缀是常量。不应出现空行。
-
如果不应该出现空行,那么edit你的问题是删除它们。