Chinaunix

标题: 这个怎么处理?求围观 [打印本页]

作者: noshell    时间: 2014-06-27 10:43
标题: 这个怎么处理?求围观
数据源:A
日期 ID
20131120 aslkdopsak123
20131125 askdpsdjcsjdpc
20131205 okpdsokvfdsvdv
20140122 dskdfvodpvpfd

需求
根据A文件的每条记录数据出 ,前一天记录和后一天记录


结果数据 B
日期 ID
20131119 aslkdopsak123
20131121 aslkdopsak123
20131124 askdpsdjcsjdpc
20131126 askdpsdjcsjdpc
20131204 okpdsokvfdsvdv
20131206 okpdsokvfdsvdv
20140121 dskdfvodpvpfd
20140123 dskdfvodpvpfd

作者: reyleon    时间: 2014-06-27 10:50
你这个栗子举的有点儿不那么严肃
作者: Herowinter    时间: 2014-06-27 10:56
本帖最后由 Herowinter 于 2014-06-27 10:56 编辑

回复 1# noshell

  1. awk '{"date -d\""$1" -1 days\" +%Y%m%d"|getline d;print d,$2;"date -d\""$1" 1 days\" +%Y%m%d"|getline d;print d,$2}' i
  2. 20131119 aslkdopsak123
  3. 20131121 aslkdopsak123
  4. 20131124 askdpsdjcsjdpc
  5. 20131126 askdpsdjcsjdpc
  6. 20131204 okpdsokvfdsvdv
  7. 20131206 okpdsokvfdsvdv
  8. 20140121 dskdfvodpvpfd
  9. 20140123 dskdfvodpvpfd
  10. 20120229 aaabbbcccdddeee
  11. 20120302 aaabbbcccdddeee

  12. cat i
  13. 20131120 aslkdopsak123
  14. 20131125 askdpsdjcsjdpc
  15. 20131205 okpdsokvfdsvdv
  16. 20140122 dskdfvodpvpfd
  17. 20120301 aaabbbcccdddeee
复制代码


   
作者: noshell    时间: 2014-06-27 11:00
:wink:谢谢大神
我验证下
作者: 关阴月飞    时间: 2014-06-28 05:04
  1. awk '{a=gensub(/(..)/,"& ","g",$1);sub(" ","",a);t=mktime(a "0 0 0");for(i=t-86400;i<=(t+86400);i+=172800)print strftime("%F",i),$2}' A
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2