按列对文件进行排序,其中列是日期

按列对文件进行排序,其中列是日期

我有一个以下格式的文件

222 aaaaa 2021-12-24
333fd bbb 2021-09-1
444 cc 2022-01-16
555 zzz 2021-08-21
6666 www 2021-09-5
777 yyy 2021-03-14
888 xxx 2021-11-27
999 ffffff 2021-12-4

我正在尝试根据日期列对文件进行排序。

我尝试排序:

  • 使用选项-t "-" -k2分隔符但不起作用。(至少尝试按月排序)
  • 带选项-k3.4(可在 2021/2022 年第 4 个字符前订购),带管道| sort -n -k3.5但不起作用

答案1

YYYY-MM-DD 可以按字母顺序排序,因此您唯一需要做的就是在日期前添加前导零。

sed -E 's/-(.)$/-0\1/' file | sort -k3

您可以添加| sed -E 's/-0(.)$/-\1/'以恢复原始格式(但为什么?)。

相关内容