Board logo

标题: [文本处理] 【已解决】批处理BAT如何删除含特定中文的行? [打印本页]

作者: elec    时间: 2014-5-19 14:55     标题: 【已解决】批处理BAT如何删除含特定中文的行?

本帖最后由 elec 于 2014-7-7 23:37 编辑

例如一个大文本
  1. asdsa  中文asd  1565  da   45
  2. daas    a方     9656  sf   爱上
  3. asdsa  中文asd  1565  da   45
  4. daas    地撒旦     9656  sf   7
  5. ....
复制代码
怎么样删除所有含有  中文  这两个字的行??  希望效率高些。。
作者: apang    时间: 2014-5-19 15:27

  1. sed "/中文/d" 1.txt>2.txt
复制代码

作者: elec    时间: 2014-5-19 15:47

回复 2# apang


    谢谢~原来是编码问题。
    我用的也是这行代码。但是对于UTF-8的文本不起作用,文档另存为ANSI编码就正常了哈。
作者: elec    时间: 2014-5-19 16:00

回复 2# apang


       还想问下关于sed的用法。如果sed在用于删除包含多个字符时,怎么写?
       例如删除包含 aa 或者 bb 或者 cc 或者 dd 的所在行?可以和成一条命令写吗,还是要用4条sed?
作者: apang    时间: 2014-5-19 16:36

回复 4# elec
  1. sed -r "/中文|aa|bb|cc/d" 1.txt>2.txt
复制代码

作者: terse    时间: 2014-5-20 00:58

文本多大?
  1. findstr /iv "中文 aa bb cc" a.txt >b.txt
复制代码

作者: CrLf    时间: 2014-5-20 06:53

回复 6# terse


    处理中文可能要加 /r
作者: terse    时间: 2014-5-20 10:35

回复 7# CrLf
谢谢提醒  这里貌似加了/i  是否等同 /r 还真没详细测试




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