免费注册 查看新帖 |

Chinaunix

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

文本关键字查找问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-03 09:29 |只看该作者 |倒序浏览
举例 文本 test.log内容如下


test server;

Test server
;

error lock test server
;

error test test server error;
.
.
.
.

以上是举例文本信息

关键字:test error...等等 不区分大小写.

目的:
找到关键字 和 关键字之后的第一个分号之间的东西 中间其它的关键字 忽略 ,在前后加上标签 关键字和分号可能不在同一行

结果:
[LOG]
test server;
[/LOG]
[LOG]
Test server
;
[/LOG]
[LOG]
error lock test server
;
[/LOG]
[LOG]
error test test server error;
[/LOG]
.
.
.
.

论坛徽章:
0
2 [报告]
发表于 2011-06-03 09:58 |只看该作者
回复 1# sunsansheng_cu
  1. sed -rn ':a;N;${s/([Tt]est|[Ee]rror)[^;]*;/\[LOG\]\n&\n\[\/LOG\]/g;p};ba' file
复制代码

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
3 [报告]
发表于 2011-06-03 10:05 |只看该作者
回复 1# sunsansheng_cu
  1. cat keyword.txt
  2. test
  3. error
  4. ....



  5. awk  'BEGIN{IGNORECASE=1}NR==FNR{a[$1]}NR>FNR{for(i=1;i<=NF;i++){for(j in a) if($i~a[j]) {$i=x==0?"[LOG]\n"$i:$i;x=1};if($i~/;/){x++;$i=x==2?$i"\n[/LOG]":$i;x=0}};print}' keyword.txt file
  6. [LOG]
  7. test server;
  8. [/LOG]

  9. [LOG]
  10. Test server
  11. ;
  12. [/LOG]

  13. [LOG]
  14. error lock test server
  15. ;
  16. [/LOG]

  17. [LOG]
  18. error test test server error;
  19. [/LOG]
复制代码

论坛徽章:
0
4 [报告]
发表于 2011-06-03 10:40 |只看该作者
本帖最后由 sunsansheng_cu 于 2011-06-03 10:51 编辑
回复  sunsansheng_cu
yinyuemi 发表于 2011-06-03 10:05



   

很奇怪的一个问题:
如果文本是这样

test server;

+---------------------------------+
Test server
;

error lock test server
;

error test test server error;
.


则输出就是:
[LOG]
test server;
[/LOG]
[LOG]
+----------------------------------+
Test server
;
[/LOG]
[LOG]
error lock test server
;
[/LOG]
[LOG]
error test test server error;
[/LOG]
.
.
.
.

标签会把+-------------------+加入进去

或者这样的
Test server
;error lock test server
;

输出时也有问题

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
5 [报告]
发表于 2011-06-03 11:05 |只看该作者
须求不明+1

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
6 [报告]
发表于 2011-06-03 15:53 |只看该作者
回复 4# sunsansheng_cu
  1. awk  'BEGIN{IGNORECASE=1}NR==FNR{a[$1]}NR>FNR{for(i=1;i<=NF;i++){for(j in a) if($i==j) {$i=x==0?"[LOG]\n"$i:$i;x=1};if($i~/;/){x++;$i=x==2?$i"\n[/LOG]":$i;x=0}};print}' keyword.txt file
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP