标题: [文本处理] 【已解决】求批处理:在B文本中直接删除与A文本重复的Email [打印本页]
作者: gu3669 时间: 2019-8-25 15:51 标题: 【已解决】求批处理:在B文本中直接删除与A文本重复的Email
本帖最后由 gu3669 于 2019-8-25 22:15 编辑
求批处理:在B文本中直接删除与A文本重复的Email
示例
B文本:(多数Email两头有空格,但也有没空格的)
景峰电脑科技有限公司 cdep@cninfo.net;中国法制报 zgfzb889@163.com。海南华清中学hnhuaqing@sina.com,阳光育英私立学堂 h666xtimes@vip.sina.com
A文本:(每个Email单占一行)
gzdenghang@126.com
zgfzb889@163.com
head@swzaob.com
h666xtimes@vip.sina.com
hsr000bck@yahoo.com.cn
lu_luyiru@yahoo.com.cn
nashui_ren@sina.com
A文本第二第四行与B文本第二第四重复,是应该删除的
运行批处理之后的B文本应该是这样:
景峰电脑科技有限公司 cdep@cninfo.net;中国法制报 。海南华清中学hnhuaqing@sina.com,阳光育英私立学堂
盼望高手帮忙解决,衷心感谢!!
作者: WHY 时间: 2019-8-25 20:04
本帖最后由 WHY 于 2019-8-27 00:13 编辑
Test.ps1- $dic = New-Object 'System.Collections.Generic.Dictionary[string, int]';
- forEach( $a In (gc a.txt -ReadCount 0) ){ if( !$dic.ContainsKey($a) ){ $dic.Add($a, 1) }};
- $str = [IO.File]::ReadAllText('b.txt', [Text.Encoding]::Default);
- $str = [regex]::Replace($str, '(?i)[a-z\d][\w.-]+@([a-z\d][\w-]+\.){1,3}[a-z]{2,4}', {
- param($m);
- if( $dic.ContainsKey($m.Value) ){ '' } else { $m.Value }
- });
- [IO.File]::WriteAllText('c.txt', $str, [Text.Encoding]::Default);
复制代码
运行方法:1.右键单击,使用 PowerShell 运行;2.或者,在 CMD 窗口,cd /d 切换到脚本目录,输入:PowerShell -exec Bypass "&'.\Test.ps1'"
Test.JS- var map = [];
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- var f1 = fso.OpenTextFile('a.txt', 1);
- var f2 = fso.OpenTextFile('b.txt', 1);
- while( !f1.AtEndOfStream ) map[f1.ReadLine()] = 1;
- var str = f2.ReadAll().replace(
- /[a-z\d][\w.-]+@([a-z\d][\w-]+\.){1,3}[a-z]{2,4}/ig,
- function($0){ return map[$0] ? '' : $0; }
- )
- fso.OpenTextFile('c.txt', 2, true).Write(str);
- WSH.Echo('Done');
复制代码
作者: gu3669 时间: 2019-8-25 20:23
谢谢你的帮助。不过刚刚运行了批处理后,B文本里没有任何变化,是哪里有错?
作者: flashercs 时间: 2019-8-25 20:27
本帖最后由 flashercs 于 2019-8-25 20:31 编辑
batch- @echo off
- pushd "%~dp0"
- Powershell -NoProfile -Command "Get-Content A.txt|ForEach-Object -Begin {$str=Get-Content B.txt|Out-String} -Process {$str=$str.Replace($_,'')} -End {$str|Out-File -FilePath B.txt}"
- popd
复制代码
作者: gu3669 时间: 2019-8-25 20:33
这个脚本运行应该是挺麻烦的吧,我不太会啊,我想要的是那种简单的.bat批处理文件,能不能麻烦你给我一个那样的?
作者: flashercs 时间: 2019-8-25 20:43
回复 5# gu3669
4楼是bat 批处理
作者: gu3669 时间: 2019-8-25 22:11
运行很成功,非常感谢你的热心帮助,也谢谢二楼的朋友。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |