我有一个带有日期字段的文件,像这样。
20|1|124|Mar 19 2016 3:00AM
20|1|144|Mar 19 2016 2:00PM
43|1|146|Mar 19 2016 5:30AM
42|1|158|Mar 19 2016 1:50PM
40|1|15|Mar 19 2016 2:30AM
我想按日期字段排序,以使AM早于PM。到目前为止,我有这个:
sort -t"|" -k4 testfile.
但是我不确定如何对“ AM”和“ PM”部分进行排序。任何帮助表示赞赏。
您可以使用:
while read -r; do
IFS='|' read -ra arr <<< "$REPLY"
date -d "${arr[-1]}" "+$REPLY#%s"
done < file | sort -t# -k2 | cut -d# -f1
40|1|15|Mar 19 2016 2:30AM
20|1|124|Mar 19 2016 3:00AM
43|1|146|Mar 19 2016 5:30AM
42|1|158|Mar 19 2016 1:50PM
20|1|144|Mar 19 2016 2:00PM
使用date
命令我们解析管道分隔字段中的最后一个字段,并在以分隔的每一行中添加EPOCH值#
。然后使用sort
我们对第二个字段(EPOCH值)进行排序,最后使用cut
丢弃之后的值#
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句