![Board logo](images/default/logo.gif)
标题: [文本处理] 【已解决】求批处理:在A文本中直接删除不含@的行 [打印本页]
作者: gu3669 时间: 2019-8-27 19:40 标题: 【已解决】求批处理:在A文本中直接删除不含@的行
本帖最后由 gu3669 于 2019-8-27 21:16 编辑
求批处理:在A文本中直接删除不含@的行,然后把所有空行也删除
A文本:
荆州日报 jzdaily@jz.hb.cninfo.net
荆州晚报 jzdaily@jz.hb.cninfo.net
农村新报 hbnmbbjb@hbdaily.com.cn
家庭文摘报
湖北日报 qzgzb@hbdaily.com.cn
市场指南报 scznbbjb@hbdaily.com.cn
运行批处理后应该是这样的:
荆州日报 jzdaily@jz.hb.cninfo.net
荆州晚报 jzdaily@jz.hb.cninfo.net
农村新报 hbnmbbjb@hbdaily.com.cn
湖北日报 qzgzb@hbdaily.com.cn
市场指南报 scznbbjb@hbdaily.com.cn
求高手帮忙,衷心感谢!
作者: Batcher 时间: 2019-8-27 20:01
- @echo off
- findstr "@" "A.txt" > "A.txt.tmp"
- move /y "A.txt.tmp" "A.txt"
复制代码
作者: gu3669 时间: 2019-8-27 20:33
非常感谢2楼的帮助。我想顺便问一下,在word里怎么解决这个问题,比如用查找替换,输入什么代码能删除不含@的行?再次感谢你!
作者: qixiaobin0715 时间: 2019-8-27 22:23
本帖最后由 qixiaobin0715 于 2019-8-27 22:32 编辑
回复 3# gu3669
Word文档高级查找和替换通配符表示法比较变态,像这样整行替换尽量少用,不小心就会落入陷阱,好多通配符表达意义模糊不明确。不好用不好用。
点击替换——更多——勾选使用通配符
查找内容填入:^13[!\@^13]{1,}^13
替换为:^13
点击全部替换
如果不含@的行存在连续多个行,需多次点击全部替换。直至0次替换为止。
替换前备份文件,以免出现意外。
首行不含@,请手工删除。
作者: Batcher 时间: 2019-8-28 08:05
回复 4# qixiaobin0715
哪个通配符表达意义模糊不明确?
作者: qixiaobin0715 时间: 2019-8-28 09:21
回复 5# Batcher
比如通配符“@”和“*”就很难搞定。
按照Word文档中查找中的特殊格式解释为:
@——前一个或多个。我的理解是前面的字符一个或多个,相当于正则表达式中的量词“+”。
*——零个或多个字符。我的理解是相当于正则表达式中的“.*”组合。
我们将下面一段示范文本复制到Word文档中,进行高级查找- 我们有三月、六月、或者一年的储期,更不用说还有三年、五年和十年的储期了。
-
- We offer a choice of three, six or #####twelve month maturities, let alone three, five or ten year plans.
- 英语中表达递进关系时,最常用的有“let alone”“still less”“much less”等,例如:
- I cannot afford to rent [rent] a house, let alone buy it.(我连房租都付不起,更谈不上买房了。)
- This firm can hardly pay##### for the salary still less for their development. (这间公司连发工资都成问题,
- 更谈不上发展了。)
- This firm has never built a common highway, much less an expressway (这家公司连普通公路都
- 未建造过,就更谈不上建高速公路了。)
复制代码
1.我想查找相连的字符#。
勾选使用通配符
查找内容:#@
实际上匹配的是单个的#
2.查找数目相连的不定的#,后面是单词“twelve”
勾选使用通配符
查找内容:#@twelve
这一回查找结果是我所期望的
3.查找“pay”+“若干#”的组合
勾选使用通配符
查找内容:pay#@
结果只匹配pay#,后面的#就忽略了。
4.有一回我想匹配以t开头e结尾的单词,这么写的表达式t*e,结果很无奈,不过这次是自己该打,太想当然了,实际应当在表达式两边加上单词边界。这里主要是为了说“*”可以匹配换行符的,考虑不周有可能匹配几行、几十行、甚至上百行。也可以用t*e匹配上面文本,看一看会得到什么结果。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |