在线等,请教shell脚本!

506阅读 0评论2010-03-10 greendays
分类:


在线等,请教shell脚本!

  » » »
[] [] [] []

一个数据文件,数据格式如下:

9109010808740114|03|20501231235959|18910022010|
9109010808740154|03|20501231235959|18910022018|
102830284|03|20380101000000|13311392328|
9109022108880327|16|20090821201703|15321887928|

写个简单的脚本,找出第三列(时间)小于20090929235959 的数据,并输出


| | |

gawk -F'|' '$3 < 20090929235959 {print}'
__________________________________
67.85.35770.22363.19978.30340.21271.20140.37326.29436.23601.19968.28903.39292.10


| | |

多谢,好像可以,我再验证一下


| | |

还有一个问题,如果这种格式文件

怎么把文件中的完全重复的数据,只保留一行?

排重!


| | |



QUOTE:
原帖由 ssxy 于 2009-9-29 15:35 发表
还有一个问题,如果这种格式文件

怎么把文件中的完全重复的数据,只保留一行?

排重!



awk '!a[$0]++' urfile


| | |

多谢了

真是会者不难啊

给推荐本书吧,高手


| | |

:em03:

(2.1 MB)

__________________________________
67.85.35770.22363.19978.30340.21271.20140.37326.29436.23601.19968.28903.39292.10


| | |

回复 #6 ssxy 的帖子

还是先把置顶的十二篇看完打打基础比较好吧
__________________________________


| | |



QUOTE:
原帖由 MYSQLER 于 2009-9-29 15:36 发表


awk '!a[$0]++' urfile



请问这句话怎么理解?


| | |

uniq -u file


| | |
  » » »
  快速回复主题
在线等,请教shell脚本!

  » » »
[] [] [] []

36000012|9109011208750577|20090112000000|20501231000000|
36000071|101580714|20090622183227|20501230000000|

这种数据,我要把第四列只取前8位,后面补0

怎么做?


| | |

自己顶!!!!!!!!!!!!!!!!!


| | |

回复 #11 ssxy 的帖子

补几位0?问题都没说清
__________________________________
shell新手&&awk新手
http://ywlscpl.cublog.cn


| | |

6位


| | |

回复 #14 ssxy 的帖子

awk -F "|" -v OFS="|" '{$4=substr($4,1,8)"000000"}1' file
__________________________________
shell新手&&awk新手
http://ywlscpl.cublog.cn


| | |

高,谢谢


| | |

顶了 来支持一下


| | |
  » » »
  快速回复主题
上一篇:只删除带字母的行,但保留开头为no的行,深了!求助!
下一篇:awk能否打印第五列以后全部列