免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4394 | 回复: 19
打印 上一主题 下一主题

请教如何用shell进行合并行操作 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-13 13:26 |只看该作者 |倒序浏览
待处理的文本如下
T 119.163.122.65:37018 -> 119.163.193.242:80 [AP]
x-forwarded-for: 10.87.15.180
T 119.163.193.242:80 -> 119.163.122.65:37018 [AP]
T 119.163.122.65:36792 -> 119.163.193.242:80 [AP]
x-forwarded-for: 10.86.180.87
T 119.163.193.242:80 -> 119.163.122.65:36792 [AP]
T 119.163.122.65:44387 -> 119.163.193.242:80 [AP]
x-forwarded-for: 10.86.146.16
T 119.163.193.242:80 -> 119.163.122.65:44387 [AP]
T 119.163.122.65:28732 -> 119.163.193.242:80 [AP]

如何处理成
T 119.163.122.65:37018 -> 119.163.193.242:80 [AP]    x-forwarded-for: 10.87.15.180
T 119.163.193.242:80 -> 119.163.122.65:37018 [AP]
T 119.163.122.65:36792 -> 119.163.193.242:80 [AP]    x-forwarded-for: 10.86.180.87
T 119.163.193.242:80 -> 119.163.122.65:36792 [AP]
T 119.163.122.65:44387 -> 119.163.193.242:80 [AP]    x-forwarded-for: 10.86.146.16
....

论坛徽章:
0
2 [报告]
发表于 2010-07-13 13:31 |只看该作者
本帖最后由 黑色阳光_cu 于 2010-07-13 13:33 编辑

$ sed ':l N; s/\nx-forward/ x-forward/; $!tl' test.txt
T 119.163.122.65:37018 -> 119.163.193.242:80 [AP] x-forwarded-for: 10.87.15.180
T 119.163.193.242:80 -> 119.163.122.65:37018 [AP]
T 119.163.122.65:36792 -> 119.163.193.242:80 [AP] x-forwarded-for: 10.86.180.87
T 119.163.193.242:80 -> 119.163.122.65:36792 [AP]
T 119.163.122.65:44387 -> 119.163.193.242:80 [AP] x-forwarded-for: 10.86.146.16
T 119.163.193.242:80 -> 119.163.122.65:44387 [AP]
T 119.163.122.65:28732 -> 119.163.193.242:80 [AP]

论坛徽章:
0
3 [报告]
发表于 2010-07-13 13:40 |只看该作者
awk 'p{print $0"\t"p}/x-forwarded-for/{p=$0}' file

论坛徽章:
0
4 [报告]
发表于 2010-07-13 13:43 |只看该作者
sed ':a;N;/\nx/!ba;s/\nx/ x/' test7.txt

论坛徽章:
0
5 [报告]
发表于 2010-07-13 13:44 |只看该作者
awk '/->/{$0="\n"$0}{printf $0}' file

论坛徽章:
0
6 [报告]
发表于 2010-07-13 13:46 |只看该作者
  1. sed -n ':a N;/\nx-forwarded-for/{s/\n/ /;p;ba};P;D;ba' file
复制代码

论坛徽章:
0
7 [报告]
发表于 2010-07-13 13:46 |只看该作者
按照黑色阳光的方法仍然有漏网之鱼,麻烦看看是哪里的问题
[root@app3 tmp]# head -980 ruyi.log |tail -10
T 119.163.193.24:80 -> 119.163.122.65:22689 [AP]
T 119.163.122.65:49207 -> 119.163.193.24:80 [AP]
x-forwarded-for: 10.87.18.249.
T 119.163.193.24:80 -> 119.163.122.65:49207 [A]
T 119.163.122.65:33552 -> 119.163.193.24:80 [AP]
x-forwarded-for: 10.86.234.221.
T 119.163.193.24:80 -> 119.163.122.65:33552 [AP]
T 119.163.122.65:62397 -> 119.163.193.24:80 [AP]
T 119.163.122.65:62397 -> 119.163.193.24:80 [AP]
x-forwarded-for: 10.86.253.35.

[root@app3 tmp]# head -980 ruyi.log |tail -10|sed ':l N; s/\nx-forward/ x-forward/; $!tl'
T 119.163.193.24:80 -> 119.163.122.65:22689 [AP]
T 119.163.122.65:49207 -> 119.163.193.24:80 [AP]
x-forwarded-for: 10.87.18.249.
T 119.163.193.24:80 -> 119.163.122.65:49207 [A]
T 119.163.122.65:33552 -> 119.163.193.24:80 [AP] x-forwarded-for: 10.86.234.221.
T 119.163.193.24:80 -> 119.163.122.65:33552 [AP]
T 119.163.122.65:62397 -> 119.163.193.24:80 [AP]
T 119.163.122.65:62397 -> 119.163.193.24:80 [AP]
x-forwarded-for: 10.86.253.35.

论坛徽章:
0
8 [报告]
发表于 2010-07-13 13:48 |只看该作者
awk 'p{print $0"\t"p}/x-forwarded-for/{p=$0}' file
lucash 发表于 2010-07-13 13:40



    这个不对吧。。。。

论坛徽章:
0
9 [报告]
发表于 2010-07-13 13:49 |只看该作者
回复 7# jiajuzh


    试试我的~

论坛徽章:
0
10 [报告]
发表于 2010-07-13 13:50 |只看该作者
sed ':l N; s/\nx-forward/ x-forward/; bl' test.txt


sed不熟~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP