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} '

预期yields

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--从第二条线一直走到最后.
  • sed -E 's/^(([^,]+,){4})([0-9]-)/\10\3/--在第5字段的日期前添加一个0,并将其转换为两位数的日期.
  • sort -t ',' -k 5.8n -k 5.4M -k 5.1n
    • -t ','--将字段分隔符(,)设置为sort
    • -k 5.8n--首先按数字年份排序.
    • -k 5.4M--接下来按月排序.
    • -k 5.1n--按数字天数排序.

Linux相关问答推荐

Microsoft ODBC Driver 18 for Python Docker Image,ARM设备;生成错误

Linux和Windows x86程序集调用约定

如何在 shell 脚本中自定义 SFTP 详细输出

为什么在已连接的设备上调用 btmgmt conn-info 返回:状态 0x02(未连接)

在查找命令中使用 printf

如何使用 Linux 命令行跨子目录查找相似的文件名?

如何比较 2 个文件并将第二个文件的所有行打印到输出文件 awk

使用 sed linux 命令和 i sed 命令进行 preprend 时的反向引用

如何在 linux 上为 JNI 应用程序编译动态库?

如何使用该位置的相对路径在单个位置创建多个文件夹?

使用 Scp 时防止覆盖文件

如何让 PHP、Symlinks 和 __FILE__ 很好地协同工作?

如何 grep 精确的文字字符串(无正则表达式)

为 django 项目安装 memcached

为什么可执行文件操作系统依赖于?

bash 脚本中的自动 docker 登录

Monit 守护程序 - 连接到 monit 守护程序时出错

ctrl-x 在终端中使用时会发送哪个信号?

如何使用终端打开-虚线文件名?

如何将 ISO8859-15 转换为 UTF8?