Board logo

标题: [文本处理] [已解决]grep如何分别同时多个条件过滤 [打印本页]

作者: shootman2    时间: 2015-5-13 18:17     标题: [已解决]grep如何分别同时多个条件过滤

本帖最后由 shootman2 于 2015-5-13 23:53 编辑

看下面的命令
for /f "tokens=1-4 delims=|" %m in ('grep -E "^D01" eng_dsrc_cfgs.txt') do echo %m^|%n^|%o^|%p
D010|251-yyjc-system|oracle|system
D011|144-yyjc-system|oracle|system
D012|78-yyjc-bkuser|oracle|bkuser
D013|140-visu-system|oracle|system
D014|125-infa-system|oracle|system
D015|253-yyjc-system|oracle|system
D016|71-orcl-visu|oracle|visu
D017|140-orcl-visu|oracle|visu
D018|78-yyjc-visu|oracle|visu
D019|98-bkscan|ftp|bkscan

在命令grep -E "^D01" eng_dsrc_cfgs.txt中,我想再增加一个 与 条件,
整体的意思,就是筛选单反以D01打头的,并且含有 oracle 字符的行
我在后面增加了一个 -E 参数,但是报错了
grep -E "^D01" -E "oracle" eng_dsrc_cfgs.txt
grep: oracle: No such file or directory
eng_dsrc_cfgs.txt010|251-yyjc-system|oracle|system
eng_dsrc_cfgs.txt:D011|144-yyjc-system|oracle|system
eng_dsrc_cfgs.txt:D012|78-yyjc-bkuser|oracle|bkuser        
eng_dsrc_cfgs.txt:D013|140-visu-system|oracle|system
eng_dsrc_cfgs.txt:D014|125-infa-system|oracle|system
eng_dsrc_cfgs.txt:D015|253-yyjc-system|oracle|system
eng_dsrc_cfgs.txt:D016|71-orcl-visu|oracle|visu      
eng_dsrc_cfgs.txt:D017|140-orcl-visu|oracle|visu  
eng_dsrc_cfgs.txt:D018|78-yyjc-visu|oracle|visu
eng_dsrc_cfgs.txt:D019|98-bkscan|ftp|bkscan      

具体该怎么写,求助大神。。。
作者: gawk    时间: 2015-5-13 18:35

  1. for /f "tokens=1-4 delims=|" %m in ('grep "^D01.*oracle" 1.txt') do @echo %m^|%n^|%o^|%p
复制代码

作者: shootman2    时间: 2015-5-13 20:59

回复 2# gawk


    哇!好复杂啊!脑子不够用了,咋理解呢?
作者: gawk    时间: 2015-5-13 21:28

回复 3# shootman2


    不就是多了 .* 吗,正则表达式最基础的东西呀,多看看教程吧。
作者: bailong360    时间: 2015-5-13 22:36

  1. for /f "tokens=1-4 delims=|" %m in ('grep "^D01" eng_dsrc_cfgs.txt^|grep "oracle"') do echo %m^|%n^|%o^|%p
复制代码
用管道再过滤一次,这个总好理解了....




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2