+ -
当前位置:首页 → 问答吧 → 求教一个shell脚本

求教一个shell脚本

时间:2011-04-13

来源:互联网

本帖最后由 kelzz 于 2011-04-13 21:42 编辑

一个数据文件如下:

asdfklajsdfjajsdlfjkajkdfjsid=123123&pwd=asdfasdfasdf

asdfaasdfasdf;;lkl;

asdf;a;sdfasdf

asdfasdfasdf
asdfasdf
test=test11111

asdfklajsdfjajsdlfjkajkdfjsid=123112312323&pwd=asdddffasdfasdf

asdfaasdfasdf;;lkl;

asdf;a;sdfasdf

asdfasdfasdf
asdfasdf
test=test11111

asdfklajsdfjajsdlfjkajkdfjsid=123123333&pwd=asdf333asdfasdf

asdfaasdfasdf;;lkl;

asdf;a;sdfasdf

asdfasdfasdf
asdfasdf

test=test11111

目前是想取出sid和pwd这一行,条件是这一行下面第八行或者第九行包含test11111这个字符串,则打印出sid=123123&pwd=asdfasdfasdf这一行,求教高人指点。

作者: kelzz   发布时间: 2011-04-13

我也是初学,就是只打印sid这行,你看满意不


[root@localhost /test]# awk '/sid/' filename
asdfklajsdfjajsdlfjkajkdfjsid=123123&pwd=asdfasdfasdf
asdfklajsdfjajsdlfjkajkdfjsid=123112312323&pwd=asdddffasdfasdf
asdfklajsdfjajsdlfjkajkdfjsid=123123333&pwd=asdf333asdfasdf

作者: zooyo   发布时间: 2011-04-13



QUOTE:
我也是初学,就是只打印sid这行,你看满意不


[root@localhost /test]# awk '/sid/' filename
asdfkla ...
zooyo 发表于 2011-04-13 22:54




   
谢谢,可能你没看懂我的意思,我是说每当sid这一行的下面八行或者第九行包含test11111这个字符串,则打印出sid这一行的内容。。

作者: kelzz   发布时间: 2011-04-13

只有坐等高人了。帮你顶顶。

作者: zooyo   发布时间: 2011-04-13

回复 kelzz


    这个可以么?
  1. awk '/sid/{x=$0}/test=test11111/{print x}'
复制代码

作者: yinyuemi   发布时间: 2011-04-13



QUOTE:
回复  kelzz


    这个可以么?
yinyuemi 发表于 2011-04-13 23:45



感谢热心的yinyuemi ,我试了,不能打印出结果。。

作者: kelzz   发布时间: 2011-04-13

perl -e 'while(<>){if(/sid=(.*)&pwd=(.*)/){ $sid=$1; $pwd=$2; $.=0} ; if($.>7 && $. <10 && $_=~/test1111/) { print "sid = $sid , pwd = $pwd\n"; $. = 0} }' test.txt
用 perl简单想简单做.
或者用 sed吧, 不过 sed有时很 brain fuck !

作者: miniqq   发布时间: 2011-04-13

回复 kelzz

奇怪,我这里测试成功的,没有输出还是报错

作者: yinyuemi   发布时间: 2011-04-13

热门下载

更多