[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]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      

具体该怎么写,求助大神。。。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

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

评分人数

Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 2# gawk


    哇!好复杂啊!脑子不够用了,咋理解呢?

TOP

回复 3# shootman2


    不就是多了 .* 吗,正则表达式最基础的东西呀,多看看教程吧。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

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

TOP

返回列表