Linux 中awk 提取包含某个关键字的段落
前提
AWK是一种处理文本文件的语言,是一个强大的文本分析工具。
本文将使用命令awk将具有某个关键字的段落提取出来。
准备数据
"Finalizer"#3daemonprio=8os_prio=0tid=0x00007fb2dc1aa800nid=0x63f6inObject.wait()[0x00007fb2be61f000] java.lang.Thread.State:WAITING(onobjectmonitor) atjava.lang.Object.wait(NativeMethod) -waitingon<0x00000000d6708ed8>(ajava.lang.ref.ReferenceQueue$Lock) atjava.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144) -locked<0x00000000d6708ed8>(ajava.lang.ref.ReferenceQueue$Lock) atjava.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165) atjava.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216) "ReferenceHandler"#2daemonprio=10os_prio=0tid=0x00007fb2dc1a6000nid=0x63f5inObject.wait()[0x00007fb2be720000] java.lang.Thread.State:WAITING(onobjectmonitor) atjava.lang.Object.wait(NativeMethod) -waitingon<0x00000000d6706c00>(ajava.lang.ref.Reference$Lock) atjava.lang.Object.wait(Object.java:502) atjava.lang.ref.Reference.tryHandlePending(Reference.java:191) -locked<0x00000000d6706c00>(ajava.lang.ref.Reference$Lock) atjava.lang.ref.Reference$ReferenceHandler.run(Reference.java:153) "main"#1prio=5os_prio=0tid=0x00007fb2dc04b800nid=0x63efwaitingoncondition[0x00007fb2e3382000] java.lang.Thread.State:TIMED_WAITING(sleeping) atjava.lang.Thread.sleep(NativeMethod) atcom.test.Test.main(Test.java:16) atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod) atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) atjava.lang.reflect.Method.invoke(Method.java:498) atorg.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) atorg.springframework.boot.loader.Launcher.launch(Launcher.java:87) atorg.springframework.boot.loader.Launcher.launch(Launcher.java:50) atorg.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
段落提取
假设我们需要的关键字为nid=0x63ef
keywords=0x63ef ##以前后双换行符为一个段落 ##查询包含关键字nid=0x63ef的段落 awk'BEGIN{RS="\n\n+";ORS="\n\n"}/'$awk,关键字段落,awk,提取关键字'/{print$0}'test.log ##查询不包含关键字nid=0x63ef的段落 awk'BEGIN{RS="\n\n+";ORS="\n\n"}!/'$awk,关键字段落,awk,提取关键字'/{print$0}'test.log
总结
以上所述是小编给大家介绍的Linux中awk 提取包含某个关键字的段落,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。