![Board logo](images/default/logo.gif)
标题: [文本处理] 【已解决】求批处理: 提取A文本里重复的行到B文本 [打印本页]
作者: gu3669 时间: 2019-8-28 19:28 标题: 【已解决】求批处理: 提取A文本里重复的行到B文本
本帖最后由 gu3669 于 2019-8-28 23:26 编辑
求批处理: 提取A文本里重复的行到B文本
高手帮帮忙,多多感谢!!
A文本(全是邮箱):
1111@hbdaily.com.cn
2222@qq.com
3333@126.com
2222@126.com
1111@hbdaily.com.cn
运行批处理后的B文本:
1111@hbdaily.com.cn
作者: WHY 时间: 2019-8-28 20:47
- @if(0)==(0) echo off
- cscript //nologo //e:jscript "%~f0" < a.txt > b.txt
- pause & exit
- @end
-
- var map = [];
- while( !WSH.StdIn.AtEndOfStream ){
- var s = WSH.StdIn.ReadLine();
- map[s] = map[s] ? map[s]+1 : 1;
- }
- for( s in map ){ if( map[s] > 1 ) WSH.Echo(s); }
复制代码
- gawk "{a[$0]++}END{for(i in a)if(a[i]>1)print i}" a.txt > b.txt
复制代码
- PowerShell "$a=@{};forEach($s In (gc a.txt -ReadCount 0)){$a[$s]++};$b=forEach($s In $a.Keys){if($a[$s]-1){$s}};sc b.txt $b"
复制代码
作者: gu3669 时间: 2019-8-28 21:21
前面两段运行后都能生成B,但里面是空的,最后那个运行后没有任何反应,不知是哪里出问题了。
作者: gu3669 时间: 2019-8-28 21:47
再次运行了,跟上一次的结果一样。让你费心了,真不好意思。
作者: flashercs 时间: 2019-8-28 22:23
- @echo off
- pushd "%~dp0"
- set "infile=A.txt"
- set "outfile=B.txt"
- Powershell -NoProfile -Command "Get-Content \"%infile%\" | Group-Object | Where-Object {$_.Count -gt 1} | ForEach-Object { $_.Name } | Out-File -FilePath \"%outfile%\""
- pause
- exit /b
复制代码
作者: WHY 时间: 2019-8-28 22:23
用记事本打开 a.txt,在菜单上选“文件”—“另存为”,看看编码是不是 ansi
作者: gu3669 时间: 2019-8-28 23:19
用记事本打开 a.txt,在菜单上选“文件”—“另存为”,看看编码是不是 ansi
WHY 发表于 2019-8-28 22:23 ![](http://www.bathome.net/images/common/back.gif)
是Unicode
作者: gu3669 时间: 2019-8-28 23:21
非常感谢5楼朋友,完全成功,太谢谢你了! 同时也谢谢2楼的朋友,付出怎么多辛苦,再次感谢大家的帮助。
作者: WHY 时间: 2019-8-29 08:33
回复 7# gu3669
我的意思是,把 a.txt 另存为 ansi 编码。
或者,修改脚本第二行:- type a.txt | cscript //nologo //e:jscript "%~f0" > b.txt
复制代码
作者: WHY 时间: 2019-8-29 08:35
- @echo off
- setlocal enabledelayedexpansion
- for /f %%i in ( 'type a.txt ^| sort' ) do (
- if /i "%%i" == "!s!" (
- if not defined flag (set "flag=1" & echo;!s!)
- ) else (
- if defined flag set "flag="
- )
- set "s=%%i"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |