如何用GREP 搜索出以下想要的结果
时间:2011-07-18
来源:互联网
如文本 a.txt
-------------------------------------------------------
2011-06-26 20:00:00 a.com 铜川市 1111 24.09 36.12
-------------------------------------------------------
2011-06-26 18:00:00 a.com 鞍山市 1111 23.95 36.51
2011-06-26 19:00:00 b.com 鞍山市 2222 26.52 21.65
-------------------------------------------------------
2011-06-26 18:00:00 a.com 鞍山市 1111 26.97 28.24
2011-06-26 19:00:00 b.com 鞍山市 2222 27.12 20.32
2011-06-26 19:00:00 c.com 鞍山市 3333 27.12 20.32
-------------------------------------------------------
想搜索出的结果如下
-------------------------------------------------------
2011-06-26 18:00:00 a.com 鞍山市 1111 23.95 36.51
2011-06-26 19:00:00 b.com 鞍山市 2222 26.52 21.65
-------------------------------------------------------
2011-06-26 18:00:00 a.com 鞍山市 1111 26.97 28.24
2011-06-26 19:00:00 b.com 鞍山市 2222 27.12 20.32
2011-06-26 19:00:00 c.com 鞍山市 3333 27.12 20.32
-------------------------------------------------------
即 处于 --- 之间的行数 >=2 的内容 grep出来
请问各位SHELL大拿如何实现?
-------------------------------------------------------
2011-06-26 20:00:00 a.com 铜川市 1111 24.09 36.12
-------------------------------------------------------
2011-06-26 18:00:00 a.com 鞍山市 1111 23.95 36.51
2011-06-26 19:00:00 b.com 鞍山市 2222 26.52 21.65
-------------------------------------------------------
2011-06-26 18:00:00 a.com 鞍山市 1111 26.97 28.24
2011-06-26 19:00:00 b.com 鞍山市 2222 27.12 20.32
2011-06-26 19:00:00 c.com 鞍山市 3333 27.12 20.32
-------------------------------------------------------
想搜索出的结果如下
-------------------------------------------------------
2011-06-26 18:00:00 a.com 鞍山市 1111 23.95 36.51
2011-06-26 19:00:00 b.com 鞍山市 2222 26.52 21.65
-------------------------------------------------------
2011-06-26 18:00:00 a.com 鞍山市 1111 26.97 28.24
2011-06-26 19:00:00 b.com 鞍山市 2222 27.12 20.32
2011-06-26 19:00:00 c.com 鞍山市 3333 27.12 20.32
-------------------------------------------------------
即 处于 --- 之间的行数 >=2 的内容 grep出来
请问各位SHELL大拿如何实现?
作者: ztj2247 发布时间: 2011-07-18
回复 ztj2247
复制代码
- awk --re-interval -v RS='-{2,}' -v FS='\n' 'NR==1{printf RT}NF>3{printf $0RT}'
作者: yinyuemi 发布时间: 2011-07-18
QUOTE:
回复 ztj2247
yinyuemi 发表于 2011-07-18 12:55
yinyuemi 发表于 2011-07-18 12:55
楼上的好使 不过逻辑有些复杂 有简单一些 可以看懂的SHELL吗
作者: ztj2247 发布时间: 2011-07-18
回复 ztj2247
or:
复制代码
or:
- awk 'NR==1{print}
- /---/{if(p>=2)print t RS $0;p=0;t=""}
- NR>1&&!/---/{t=t?t RS $0:$0;p++}'
作者: yinyuemi 发布时间: 2011-07-18
本帖最后由 ywlscpl 于 2011-07-18 13:54 编辑
awk -v RS='---+' -F '\n' 'NF>3{printf RT$0}' file
RS='---+' 已连续的-为记录分隔符
-F '\n' 已换行为域分隔符
NF>3{print RT$0},域数(NF)大于3,则打印记录分隔符及本行(RT$0)
awk -v RS='---+' -F '\n' 'NF>3{printf RT$0}' file
RS='---+' 已连续的-为记录分隔符
-F '\n' 已换行为域分隔符
NF>3{print RT$0},域数(NF)大于3,则打印记录分隔符及本行(RT$0)
作者: ywlscpl 发布时间: 2011-07-18
QUOTE:
如文本 a.txt
-------------------------------------------------------
2011-06-26 20:00:00 a.com 铜 ...
ztj2247 发表于 2011-07-18 12:43
-------------------------------------------------------
2011-06-26 20:00:00 a.com 铜 ...
ztj2247 发表于 2011-07-18 12:43
awk '/---/{if(m>2)print t;t=$0;next}{m++;t=t"\n"$0}END{print}'
作者: jason680 发布时间: 2011-07-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28