如何在Cygwin中使用grep匹配同时满足两个条件的字符串?
在Cygwin中使用grep筛选同时包含"2014"和"female"的行
你可以通过以下几种方法实现需求,直接在Cygwin的bash终端执行即可:
管道串联两次grep(最直观易读)
先过滤出包含"2014"的行,再从结果中筛选包含"female"的行:grep "2014" your_file.txt | grep "female"把
your_file.txt替换成你的实际文件名,如果文件名包含空格,记得用双引号包裹,比如"staff_records.txt"。使用扩展正则表达式(-E 参数)
用正则匹配两个关键词的任意顺序,一次完成筛选:grep -E "(2014.*female|female.*2014)" your_file.txt-E参数启用扩展正则,让括号和竖线无需转义,语法更简洁。使用Perl兼容正则表达式(-P 参数)
利用正向预查特性,无需关心关键词顺序,写法更紧凑:grep -P "(?=.*2014)(?=.*female)" your_file.txt-P参数让grep支持Perl风格正则,正向预查(?=.*xxx)会检查行中是否存在指定内容,多个预查同时生效就表示行必须包含所有关键词。
内容的提问来源于stack exchange,提问作者Nickmofoe
相关产品推荐
相关产品推荐

