bash – egrep AND运算符[复制]
发布时间:2020-12-15 22:13:45 所属栏目:安全 来源:网络整理
导读:参见英文答案 Check if all of multiple strings or regexes exist in a file????????????????????????????????????20个 我知道egrep有一个非常有用的方法,通过使用以下两个表达式: egrep "pattern1.*pattern2"|egrep "pattern2.*pattern1" filename.txt|wc
参见英文答案 >
Check if all of multiple strings or regexes exist in a file????????????????????????????????????20个
我知道egrep有一个非常有用的方法,通过使用以下两个表达式: egrep "pattern1.*pattern2"|egrep "pattern2.*pattern1" filename.txt|wc -l 但是,在搜索三个表达式时,有一种简单的方法可以使用egrep的AND运算符,因为随着添加额外表达式,排列会呈指数增长. 我知道使用sort | uniq -d的另一种方式,但我正在寻找一个更简单的解决方案. 编辑: 我目前的搜索方式将产生五个总结果: #!/bin/bash pid=$$ grep -i "angio" rtrans.txt|sort|uniq|egrep -o "^[0-9]+ [0-9]+ " > /tmp/$pid.1.tmp grep -i "cardio" rtrans.txt|sort|uniq|egrep -o "^[0-9]+ [0-9]+ " > /tmp/$pid.2.tmp grep -i "pulmonary" rtrans.txt|sort|uniq|egrep -o "^[0-9]+ [0-9]+ " > /tmp/$pid.3.tmp cat /tmp/$pid.1.tmp /tmp/$pid.2.tmp|sort|uniq -d > /tmp/$pid.4.tmp cat /tmp/$pid.4.tmp /tmp/$pid.3.tmp|sort|uniq -d > /tmp/$pid.5.tmp egrep -o "^[0-9]+ [0-9]+ " /tmp/$pid.5.tmp|getDoc.mps > /tmp/$pid.6.tmp head -10 /tmp/$pid.6.tmp mumps@debianMumpsISR:~/Medline2012$AngioAndCardioAndPulmonary.script 1514 Structural composition of central pulmonary arteries. Growth potential after surgical shunts. 1517 Patterns of pulmonary arterial anatomy and blood supply in complex congenital heart disease with pulmonary atresia 3034 Controlled reperfusion following regional ischemia. 3481 Anaesthetic management for oophorectomy in pulmonary lymphangiomyomatosis. 3547 A comparison of methods for limiting myocardial infarct expansion during acute reperfusion-- primary role of unload 而: mumps@debianMumpsISR:~/Medline2012$grep "angio" rtrans.txt|grep "cardio" rtrans.txt|grep "pulmonary" rtrans.txt|wc -l 185 产生185行文本,因为它只是在肺部而不是所有三个搜索中获取搜索的值. 解决方法
怎么样
grep "pattern1" file|grep "pattern2"|grep "pattern3" 这将给出那些包含p1,p2和p3的行.但任意顺序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |