Board logo

标题: [文本处理] [已解决]批处理命令findstr如何提取含2个-的行? [打印本页]

作者: lantern    时间: 2014-11-4 12:17     标题: [已解决]批处理命令findstr如何提取含2个-的行?

本帖最后由 lantern 于 2014-11-4 18:58 编辑

1.179.248-255.0-255
8.6.48-55.0-255
8.8.4.0-255
8.8.8.0-255
8.15.202.0-255
8.22.56.0-255
8.34.208-223.0-255
8.35.192-207.0-255
12.216.80.0-255
......
最好含一个-的行输出到一个文件,含两个-的行输出到一个文件,谢谢
作者: apang    时间: 2014-11-4 12:40

  1. @echo off
  2. set "re=[^-]*\-[^-]*"
  3. findstr /be "%re%" a.txt > 1.txt
  4. findstr /be "%re%%re%" a.txt > 2.txt
  5. pause
复制代码

作者: 小文    时间: 2014-12-22 13:37

回复 2# apang


    功能简述:以a文本中的行的内容去匹配b文本的行的内容,把匹配到的行追加为c文本。

功能详述:
1.设a文本里有多行文本,b文本里有更多的多行文本;

2.我们用逐行用a文本里的行的内容去匹配b文本里的内容;

3.如果b文本里有匹配a文本里行的内容,则输出b文本中所在内容的行到c文本中,否则继续用a文本的下一行去匹配b文本的内容。

结果演示:
a文本:
47一行一6行第7一行第*&
第二行b文本栋
384756 一五一一一


b文本:
4y6第47一行一6行第7一行第*&……&*一行第一行638456
第二行b文本栋**牤擤固顶地yrt65547
398467b文本第三行*(&……*&第三行
第丁下盯有婆罗门稼的836450 四第行
有e6y58o567看中一384756 一五一一一


c文本:
4y6第47一行一6行第7一行第*&……&*一行第一行638456
第二行b文本栋**牤擤固顶地yrt65547
有e6y58o567看中一384756 一五一一一

为什么在这样的文本中没有用呢?对其使用命令:findstr /l /g:a.txt b.txt > c.txt
a.txt:
在计算机内部,
在计算机中,既可

b.txt:
在计算机内部,一切数据均以()形式存储选择B二进制
在计算机中,既可作为输入设备又可作为输出设备的是()选择B磁盘驱动器

c.txt:
(什么出输出不了)
作者: terse    时间: 2014-12-22 22:59

回复 3# 小文
这样试下
  1. findstr /ig:a.txt b.txt>c.txt
复制代码





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