Board logo

标题: [文本处理] 批处理处理文档,把不要的删掉 [打印本页]

作者: 大王派我去巡山    时间: 2015-8-13 19:45     标题: 批处理处理文档,把不要的删掉

本帖最后由 大王派我去巡山 于 2015-8-15 01:16 编辑

一个文档里 , 有几千行的词组!

有些需要删除,特征是:

①当这一行字数少于等于5删除整行
②当这一行的字大于等于20删除整行
③当这一行以英语字母结尾删除整行
④当这一行以数字结尾删除整行
⑤当这一行包含有  , .?!/\ _ + ,。?、!= -  等无论全角半角的标点符号, 删除整行
⑥这一条可能比较难判断 , 当 两个汉字中间夹着一个英语字母 那么这一行也删除 ,比如        批a处理

谢谢大家了 ,今天下午全部在整理excel!
  1. 留学费用   本行少于5个汉字  ,需要删除整行
  2. 赴澳大利亚留学费用
  3. 请问在上海到澳大利亚留学每年的申请时间表格到哪里领取  本行超过20个汉字  ,需要删除整行
  4. 去澳大利亚留学好吗a 本行以英语字母结尾 ,需要删除整行
  5. 澳大利亚留学花费6 本行以数字结尾 ,需要删除整行
  6. 澳大利亚留学如何申请? 本行有标点符号,需要删除整行
  7. 澳大利亚留学论坛。 本行有标点符号,需要删除整行
  8. 怎样申请d澳大利亚—留学   本行有个字母夹在在汉字中间,,需要删除整行
  9. 澳大利亚留学准备 符合要求,最后保留
  10. 澳大利亚留学专业 符合要求,最后保留
  11. 澳大利亚留学怎么申请 符合要求,最后保留
  12. 澳大利亚留学要求 符合要求,最后保留
  13. 澳洲留学一年多少钱 符合要求,最后保留
  14. 澳大利亚留学公司 符合要求,最后保留
复制代码
同时声明,小心提防孙悟空  非本人ID  。估计这家伙看我ID非常妙不可言 所以也学俺了!
作者: pcl_test    时间: 2015-8-13 19:48

  1. 本版规则
  2. 1、求助时,务必在顶楼一次性把问题交代清楚,建议给出完整有针对性的样本,样本过大可发网盘分享链接。勿发无意义的标题
  3. 2、使用 code 标记把代码部分括起来(单击回复框的 <> 按钮,复制粘贴代码进去),以便复制。问题解决后,请编辑顶楼帖子在标题前面注明[已解决]
复制代码

作者: 小心提防孙悟空    时间: 2015-8-13 20:38

回复 1# 大王派我去巡山

mark
作者: CrLf    时间: 2015-8-13 21:54

回复 3# 小心提防孙悟空


    你俩的 ID 真绝配
作者: bailong360    时间: 2015-8-13 22:04

回复 4# CrLf
注册时间也很缘分
作者: CrLf    时间: 2015-8-13 22:12

回复 5# bailong360


    楼主穿个马甲容易吗,就这样当街扒掉...
作者: bailong360    时间: 2015-8-13 22:21

回复 6# CrLf
(捂脸)我什么都没看见
作者: CrLf    时间: 2015-8-15 01:15

然而你顶楼给我们的是已经整理好的吗...
楼主给个原始样本供测试呗?
作者: bailong360    时间: 2015-8-15 12:36

是否可以理解为: 匹配由6~19个纯汉字组成的行
作者: 大王派我去巡山    时间: 2015-8-15 14:41

回复 9# bailong360


    哎呀 ,还是你脑子好使 , 一下子就明朗化了!  基本是可以这样理解 ,纯汉字连续的6-19个 !否则就排除掉!删除整行!
作者: bailong360    时间: 2015-8-15 16:30

回复 10# 大王派我去巡山
  1. @grep -P "^(([\xB0-\xF7][\xA1-\xFE])|([\x81-\xA0][\x40-\xFE])|([\xAA-\xFE][\x40-\xA0])){6,19}$" 1.txt>2.txt
复制代码

作者: pcl_test    时间: 2015-8-15 17:45

本帖最后由 pcl_test 于 2015-8-15 17:52 编辑
  1. @if(0)==(0) echo off&cscript -nologo -e:jscript "%~f0"<"1.txt">"2.txt"&pause & exit/b&@end
  2. var txt = '';
  3. while(!WScript.StdIn.AtEndOfStream) {
  4.     var str = WScript.StdIn.ReadLine();
  5.     if (/^\s*[\u4E00-\u9FFF]{6,19}\s*$/.test(str))txt=txt+str+'\r\n';
  6. }
  7. WSH.Echo(txt);
复制代码

作者: 大王派我去巡山    时间: 2015-8-18 22:26

回复 11# bailong360


    这段测试下来好像有点问题 ,生成的2.txt  大小为0 !
我下载了外部工具的




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