Chinaunix

标题: 求助,添加上一行内的出现时间 [打印本页]

作者: illiteracyzx    时间: 2014-03-04 13:10
标题: 求助,添加上一行内的出现时间
就是将以^=(以=开头)的添加以上一行的时间。不考虑连续两个=开头。



03/03 13:46:00:   =30714/ sessionId: 22363108;
03/03 13:46:06:   =890/ sessionId: 23185108;
03/03 13:46:13:   =30337/ sessionId: 22363108;
=322/ sessionId: 23185108;
03/03 13:46:15:   =30852/ sessionId: 22363108;
03/03 13:46:17:   =30852/ sessionId: 24136107;
=30230/ sessionId: 24136107;
03/03 13:46:30:   =30337/ sessionId: 22363108;  

---->

03/03 13:46:00:   =30714/ sessionId: 22363108;
03/03 13:46:06:   =890/ sessionId: 23185108;
03/03 13:46:13:   =30337/ sessionId: 22363108;
03/03 13:46:13:   =322/ sessionId: 23185108;
03/03 13:46:15:   =30852/ sessionId: 22363108;
03/03 13:46:17:   =30852/ sessionId: 24136107;
03/03 13:46:17:   =30230/ sessionId: 24136107;
03/03 13:46:30:   =30337/ sessionId: 22363108;  



作者: rdcwayx    时间: 2014-03-04 13:13
这个不难啊, 自己有没有试过先?
作者: illiteracyzx    时间: 2014-03-04 13:15
回复 2# rdcwayx


    。。新手小菜,只会查找到^=,后面就没有思路了。。。
作者: WilliBhamlll    时间: 2014-03-04 13:26
回复 1# illiteracyzx
  1. sed -r '/^=/{G;s/([^;]+;)\n([^=]+).*/\2\1/};h' file
复制代码

作者: Herowinter    时间: 2014-03-04 13:29
回复 1# illiteracyzx
  1. awk  '!/^=/{print;s=$0;next} {sub(/=.*/,$0,s);print s}' i

  2. 03/03 13:46:00:   =30714/ sessionId: 22363108;
  3. 03/03 13:46:06:   =890/ sessionId: 23185108;
  4. 03/03 13:46:13:   =30337/ sessionId: 22363108;
  5. 03/03 13:46:13:   =322/ sessionId: 23185108;
  6. 03/03 13:46:15:   =30852/ sessionId: 22363108;
  7. 03/03 13:46:17:   =30852/ sessionId: 24136107;
  8. 03/03 13:46:17:   =30230/ sessionId: 24136107;
  9. 03/03 13:46:30:   =30337/ sessionId: 22363108;
复制代码

作者: yestreenstars    时间: 2014-03-04 13:34
  1. $ awk '/^=[^=]/{$0=t"   "$0}{t=$1" "$2}1' i
  2. 03/03 13:46:00:   =30714/ sessionId: 22363108;
  3. 03/03 13:46:06:   =890/ sessionId: 23185108;
  4. 03/03 13:46:13:   =30337/ sessionId: 22363108;
  5. 03/03 13:46:13:   =322/ sessionId: 23185108;
  6. 03/03 13:46:15:   =30852/ sessionId: 22363108;
  7. 03/03 13:46:17:   =30852/ sessionId: 24136107;
  8. 03/03 13:46:17:   =30230/ sessionId: 24136107;
  9. 03/03 13:46:30:   =30337/ sessionId: 22363108;
复制代码

作者: haokoo    时间: 2014-03-04 13:37
awk ' $1 !~ /^=/ {t=$1" "$2;print $0;next}{$1=t"   "$1;print $0}' yourfile
作者: illiteracyzx    时间: 2014-03-04 15:42
感谢楼上几位,感觉awk易懂一些。。。
作者: jackhuntcn    时间: 2014-03-04 16:35
  1. $ awk -vFS='=' '{a[NR]=$1;if(NR!=1&&$1=="")printf("%s%s\n", a[NR-1],$0);else print $0}' urfile
  2. 03/03 13:46:00:   =30714/ sessionId: 22363108;
  3. 03/03 13:46:06:   =890/ sessionId: 23185108;
  4. 03/03 13:46:13:   =30337/ sessionId: 22363108;
  5. 03/03 13:46:13:   =322/ sessionId: 23185108;
  6. 03/03 13:46:15:   =30852/ sessionId: 22363108;
  7. 03/03 13:46:17:   =30852/ sessionId: 24136107;
  8. 03/03 13:46:17:   =30230/ sessionId: 24136107;
  9. 03/03 13:46:30:   =30337/ sessionId: 22363108;
复制代码

作者: huang6894    时间: 2014-03-04 17:14
小菜来一个
  1. awk -F':   =' '{if(NF==2){t=$1;print $0}else{print t":   "$1}}' hh
  2. 03/03 13:46:00:   =30714/ sessionId: 22363108;
  3. 03/03 13:46:06:   =890/ sessionId: 23185108;
  4. 03/03 13:46:13:   =30337/ sessionId: 22363108;
  5. 03/03 13:46:13:   =322/ sessionId: 23185108;
  6. 03/03 13:46:15:   =30852/ sessionId: 22363108;
  7. 03/03 13:46:17:   =30852/ sessionId: 24136107;
  8. 03/03 13:46:17:   =30230/ sessionId: 24136107;
  9. 03/03 13:46:30:   =30337/ sessionId: 22363108;
复制代码

作者: kernel69    时间: 2014-03-04 18:21
  1. cat ee
  2. 03/03 13:46:00:   =30714/ sessionId: 22363108;
  3. 03/03 13:46:06:   =890/ sessionId: 23185108;
  4. 03/03 13:46:13:   =30337/ sessionId: 22363108;
  5. =322/ sessionId: 23185108;
  6. 03/03 13:46:15:   =30852/ sessionId: 22363108;
  7. 03/03 13:46:17:   =30852/ sessionId: 24136107;
  8. =30230/ sessionId: 24136107;
  9. 03/03 13:46:30:   =30337/ sessionId: 22363108;  
  10. $ perl -lane '/^=/ ? print $s.="   ".$_: {$s="@F[0..1]" and print}' ee
  11. 03/03 13:46:00:   =30714/ sessionId: 22363108;
  12. 03/03 13:46:06:   =890/ sessionId: 23185108;
  13. 03/03 13:46:13:   =30337/ sessionId: 22363108;
  14. 03/03 13:46:13:   =322/ sessionId: 23185108;
  15. 03/03 13:46:15:   =30852/ sessionId: 22363108;
  16. 03/03 13:46:17:   =30852/ sessionId: 24136107;
  17. 03/03 13:46:17:   =30230/ sessionId: 24136107;
  18. 03/03 13:46:30:   =30337/ sessionId: 22363108;  
  19. $
复制代码
回复 1# illiteracyzx


   




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