日期:2014-05-16  浏览次数:20802 次

shell脚本实现
大神们:
a.txt数据格式如下:
 0001        42         2013092500
 0003        47         2013092501
 0002        41         2013092502
 0004        5          2013092503
 0005        66         2013092504
 0002        66         2013092505
 0003        1          2013092506
 0004        53         2013092507
 0001        23         2013092508
 0005        33         2013092509
 0002        23         2013092510
 0003        57         2013092511

a.txt文件每行3个字段为定长,第一个字段长度为4
通过shell脚本实现a.txt输出为:
 0001        23         2013092508
 0002        23         2013092510
 0003        57         2013092511
 0004        53         2013092507
 0005        33         2013092509

其实功能就是 按第一个字段排重,对于第一字段相同的行,删除前面行,保留最后一次出现的行
最后按第一个字段排序。

求shell脚本高手帮忙看下,搞了好久都没有搞出来。哭了!

shell 脚本 UNIX

------解决方案--------------------
你第二个需求文件格式都变了,当然不适用了
awk '{ line[substr($1,0,4)]=$0} END{for(k in line) print line[k]}' a.txt 
------解决方案--------------------
sort -n -k1