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

[文本处理] 【已解决】求批处理:在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

求高手帮忙,衷心感谢!
1

评分人数

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

  1. @echo off
  2. findstr "@" "A.txt" > "A.txt.tmp"
  3. move /y "A.txt.tmp" "A.txt"
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

非常感谢2楼的帮助。我想顺便问一下,在word里怎么解决这个问题,比如用查找替换,输入什么代码能删除不含@的行?再次感谢你!

TOP

本帖最后由 qixiaobin0715 于 2019-8-27 22:32 编辑

回复 3# gu3669
Word文档高级查找和替换通配符表示法比较变态,像这样整行替换尽量少用,不小心就会落入陷阱,好多通配符表达意义模糊不明确。不好用不好用。
点击替换——更多——勾选使用通配符
查找内容填入:^13[!\@^13]{1,}^13
替换为:^13
点击全部替换
如果不含@的行存在连续多个行,需多次点击全部替换。直至0次替换为止。
替换前备份文件,以免出现意外。
首行不含@,请手工删除。

TOP

回复 4# qixiaobin0715


    哪个通配符表达意义模糊不明确?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# Batcher
比如通配符“@”和“*”就很难搞定。
按照Word文档中查找中的特殊格式解释为:
@——前一个或多个。我的理解是前面的字符一个或多个,相当于正则表达式中的量词“+”。
*——零个或多个字符。我的理解是相当于正则表达式中的“.*”组合。
我们将下面一段示范文本复制到Word文档中,进行高级查找
  1. 我们有三月、六月、或者一年的储期,更不用说还有三年、五年和十年的储期了。
  2. We offer a choice of three, six or #####twelve month maturities, let alone three, five or ten year plans.
  3. 英语中表达递进关系时,最常用的有“let alone”“still less”“much less”等,例如:
  4. I cannot afford to rent [rent] a house, let alone buy it.(我连房租都付不起,更谈不上买房了。)
  5. This firm can hardly pay##### for the salary still less for their development. (这间公司连发工资都成问题,
  6. 更谈不上发展了。)
  7. This firm has never built a common highway, much less an expressway (这家公司连普通公路都
  8. 未建造过,就更谈不上建高速公路了。)
复制代码
1.我想查找相连的字符#。
勾选使用通配符
查找内容:#@
实际上匹配的是单个的#
2.查找数目相连的不定的#,后面是单词“twelve”
勾选使用通配符
查找内容:#@twelve
这一回查找结果是我所期望的
3.查找“pay”+“若干#”的组合
勾选使用通配符
查找内容:pay#@
结果只匹配pay#,后面的#就忽略了。
4.有一回我想匹配以t开头e结尾的单词,这么写的表达式t*e,结果很无奈,不过这次是自己该打,太想当然了,实际应当在表达式两边加上单词边界。这里主要是为了说“*”可以匹配换行符的,考虑不周有可能匹配几行、几十行、甚至上百行。也可以用t*e匹配上面文本,看一看会得到什么结果。

TOP

返回列表