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
sed -r '/^=/{G;s/([^;]+;)\n([^=]+).*/\2\1/};h' file
复制代码
作者:
Herowinter
时间:
2014-03-04 13:29
回复
1#
illiteracyzx
awk '!/^=/{print;s=$0;next} {sub(/=.*/,$0,s);print s}' i
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;
复制代码
作者:
yestreenstars
时间:
2014-03-04 13:34
$ awk '/^=[^=]/{$0=t" "$0}{t=$1" "$2}1' i
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;
复制代码
作者:
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
$ awk -vFS='=' '{a[NR]=$1;if(NR!=1&&$1=="")printf("%s%s\n", a[NR-1],$0);else print $0}' urfile
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;
复制代码
作者:
huang6894
时间:
2014-03-04 17:14
小菜来一个
awk -F': =' '{if(NF==2){t=$1;print $0}else{print t": "$1}}' hh
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;
复制代码
作者:
kernel69
时间:
2014-03-04 18:21
cat ee
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;
$ perl -lane '/^=/ ? print $s.=" ".$_: {$s="@F[0..1]" and print}' ee
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;
$
复制代码
回复
1#
illiteracyzx
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2