gpt4 book ai didi

linux - 我想使用排序命令对第 5 列进行日期排序。但问题是格式不一致,有什么办法呢?

转载 作者:行者123 更新时间:2023-12-05 02:26:22 25 4
gpt4 key购买 nike

M_ID,M_NAME,DEPT_ID,START_DATE,END_DATE,Salary 
M001,Richa,D001,27-Jan-07,27-Feb-07,150000
M002,Nitin,D002,16-Feb-07,16-May-07,40000
M003,AJIT,D003,8-Mar-07,8-Sep-07,70000
M004,SHARVARI,D004,28-Mar-07,28-Mar-08,120000
M005,ADITYA,D002,27-Apr-07,27-Jul-07,40000
M006,Rohan,D004,12-Apr-07,12-Apr-08,130000
M007,Usha,D003,17-Apr-07,17-Oct-07,70000
M008,Anjali,D002,2-Apr-07,2-Jul-07,40000
M009,Yash,D006,11-Apr-07,11-Jul-07,85000
M010,Nalini,D007,15-Apr-07,15-Oct-07,9999

 tail -10 Joining_date.txt|awk -F\, '{print $1,$2,$3,$4,$5|("sort -t, -M");$6} '

预期输出

M001,Richa,D001,27-Jan-07,27-Feb-07,150000
M002,Nitin,D002,16-Feb-07,16-May-07,40000
M008,anjali,D002,2-Apr-07,2-Jul-07,40000
M009,Yash,D006,11-Apr-07,11-Jul-07,85000
M005,ADITYA,D002,27-Apr-07,27-Jul-07,40000
M003,AJIT,D003,8-Mar-07,8-Sep-07,80000
M010,Nalini,D007,15-Apr-07,15-Oct-07,9999
M007,Usha,D003,17-Apr-07,17-Oct-07,70000
M004,SHARVARI,D004,28-Mar-07,28-Mar-08,120000
M006,Rohan,D004,12-Apr-07,12-Apr-08,130000

最佳答案

像这样:

tail -n+2 Joining_date.txt | sed -E 's/^(([^,]+,){4})([0-9]-)/\10\3/' | LC_ALL=C sort -t ',' -k 5.8n -k 5.4M -k 5.1n
  • tail -n+2 -- 从第2行到末尾。
  • sed -E 's/^(([^,]+,){4})([0-9]-)/\10\3/ -- 在前面加上一个零将第 5 场的日期转换为两位数的日期。
  • sort -t ',' -k 5.8n -k 5.4M -k 5.1n
    • -t ',' -- 为sort设置字段分隔符(,)
    • -k 5.8n -- 首先按数字年份排序。
    • -k 5.4M -- 接下来按月份排序。
    • -k 5.1n -- 按天数排序。

关于linux - 我想使用排序命令对第 5 列进行日期排序。但问题是格式不一致,有什么办法呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73834625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com