设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 5098|回复: 16

[sed] 文件内容截取   [复制链接]

Rank: 8Rank: 8

签到
365
注册时间
2012-8-16
最后登录
2016-1-11
在线时间
197 小时
阅读权限
90
积分
36689
帖子
49
主题
12
精华
0
UID
34803
发表于 2015-1-22 17:31:49 |显示全部楼层
本帖最后由 yhl 于 2015-1-22 17:32 编辑

如:文件 test.log 内容如下:
10.10.81.15 | success | rc=0 >>
11111111111
22222222222
33333333333
10.10.81.16 | success | rc=0 >>
11111111111
22222222222
33333333333
aaaaaaaaaaaaa
#allow plug10.10.81.22 | success | rc=0 >>
11111111111
22222222222
33333333333
44444444444
。。。。。。。。。。。。。。。

将10.10.81.15 与10.10.81.16之间的内容保存到10.10.81.15.log文件
将10.10.81.16 与10.10.81.22之间的内容保存到10.10.81.16.log文件
以下类推

Rank: 8Rank: 8

注册时间
2014-3-19
最后登录
2015-10-23
在线时间
97 小时
阅读权限
90
积分
28961
帖子
29
主题
0
精华
0
UID
41427
发表于 2015-1-22 18:14:08 |显示全部楼层
本帖最后由 xiaobu 于 2015-1-22 18:14 编辑

挺简单的,为什么不自己 锻炼一下写写呢?
  1. #!/bin/bash
  2. filename=''
  3. while read line;
  4. do
  5.   count=$(echo "$line"|grep 'success'|wc -l)
  6.   if [[ $count -ne 0 ]] ; then
  7.     filename=$(echo $line|awk -F" " '{print $1}')
  8.   else
  9.     echo $line >> $filename.log
  10.   fi
  11. done < test.log
复制代码

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-15
最后登录
2016-4-3
在线时间
1023 小时
阅读权限
90
积分
175563
帖子
696
主题
14
精华
0
UID
10623
发表于 2015-1-22 22:54:54 |显示全部楼层
  1. awk '/([0-9]+\.){3}[0-9]+/{a=gensub(/[^0-9]*(([0-9]+\.){3}[0-9]+).*/,"\\1",1,$0);next}{print >a".log"}' test.log
复制代码

使用道具 举报

Rank: 8Rank: 8

注册时间
2011-9-16
最后登录
2020-7-9
在线时间
987 小时
阅读权限
90
积分
279221
帖子
2158
主题
2
精华
0
UID
15647
发表于 2015-1-23 09:23:12 |显示全部楼层
这个值得学习一下

使用道具 举报

Rank: 8Rank: 8

注册时间
2012-4-27
最后登录
2018-5-10
在线时间
408 小时
阅读权限
90
积分
48064
帖子
64
主题
3
精华
0
UID
19798
发表于 2015-1-23 09:46:40 |显示全部楼层
833大神的就是高大上~~

使用道具 举报

Rank: 8Rank: 8

注册时间
2014-3-19
最后登录
2015-10-23
在线时间
97 小时
阅读权限
90
积分
28961
帖子
29
主题
0
精华
0
UID
41427
发表于 2015-1-23 11:21:49 |显示全部楼层
本帖最后由 xiaobu 于 2015-1-23 12:29 编辑

([0-9]+\.){3}[0-9]+ 这段为啥在我机器上老是不成功?

使用道具 举报

论坛元老

挨踢路上求取真经

Rank: 8Rank: 8

注册时间
2011-2-20
最后登录
2018-3-22
在线时间
743 小时
阅读权限
90
积分
156528
帖子
148
主题
5
精华
0
UID
12079
发表于 2015-1-23 13:42:00 |显示全部楼层
  1. awk -F\| '/>>$/{gsub(/[^0-9.]+/,"",$1);s=$1;next}{print >s".log"}' test.log
复制代码

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-15
最后登录
2016-4-3
在线时间
1023 小时
阅读权限
90
积分
175563
帖子
696
主题
14
精华
0
UID
10623
发表于 2015-1-23 14:24:19 |显示全部楼层
xiaobu 发表于 2015-1-23 11:21
([0-9]+\.){3}[0-9]+ 这段为啥在我机器上老是不成功?

试试看awk --posix

使用道具 举报

Rank: 8Rank: 8

注册时间
2012-8-16
最后登录
2016-1-11
在线时间
197 小时
阅读权限
90
积分
36689
帖子
49
主题
12
精华
0
UID
34803
发表于 2015-1-23 15:15:16 |显示全部楼层
dn833 发表于 2015-1-22 22:54

感谢纪哥

使用道具 举报

Rank: 6Rank: 6

注册时间
2012-7-22
最后登录
2015-2-4
在线时间
13 小时
阅读权限
70
积分
2643
帖子
2
主题
0
精华
0
UID
34222
发表于 2015-1-23 16:46:33 |显示全部楼层
大糖糕僧 发表于 2015-1-23 13:42

这样子也行
awk '/>>$/{s=$1;next}{print >s".log"}' test.log

使用道具 举报

Rank: 8Rank: 8

注册时间
2014-3-19
最后登录
2015-10-23
在线时间
97 小时
阅读权限
90
积分
28961
帖子
29
主题
0
精华
0
UID
41427
发表于 2015-1-23 16:57:09 |显示全部楼层
学习了awk next的用法

使用道具 举报

论坛元老

挨踢路上求取真经

Rank: 8Rank: 8

注册时间
2011-2-20
最后登录
2018-3-22
在线时间
743 小时
阅读权限
90
积分
156528
帖子
148
主题
5
精华
0
UID
12079
发表于 2015-1-23 17:38:53 |显示全部楼层
神剑闯江湖 发表于 2015-1-23 16:46
这样子也行
awk '/>>$/{s=$1;next}{print >s".log"}' test.log

楼主要求以IP.log作为文件名,对文件没要求可以那么写。。。。

使用道具 举报

Rank: 8Rank: 8

注册时间
2012-8-16
最后登录
2016-1-11
在线时间
197 小时
阅读权限
90
积分
36689
帖子
49
主题
12
精华
0
UID
34803
发表于 2015-1-23 17:51:24 |显示全部楼层
大糖糕僧 发表于 2015-1-23 13:42

感谢

使用道具 举报

Rank: 6Rank: 6

注册时间
2012-7-22
最后登录
2015-2-4
在线时间
13 小时
阅读权限
70
积分
2643
帖子
2
主题
0
精华
0
UID
34222
发表于 2015-1-23 18:04:41 |显示全部楼层
大糖糕僧 发表于 2015-1-23 17:38
楼主要求以IP.log作为文件名,对文件没要求可以那么写。。。。

恩。。。。。。。。。。。

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-15
最后登录
2016-4-3
在线时间
1023 小时
阅读权限
90
积分
175563
帖子
696
主题
14
精华
0
UID
10623
发表于 2015-1-23 21:49:55 |显示全部楼层
大糖糕僧 发表于 2015-1-23 17:38
楼主要求以IP.log作为文件名,对文件没要求可以那么写。。。。

你那个也未必把牢万一出现这种情况
  1. #allow-01 plug10.10.81.22 | success | rc=0 >>
复制代码
:lol :lol

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2020-7-9 18:17 , Processed in 0.029523 second(s), 14 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部