标题: [文本处理] [已解决]批处理删除并提取重复行问题。 [打印本页]
作者: 每天几分 时间: 2015-3-7 23:53 标题: [已解决]批处理删除并提取重复行问题。
本帖最后由 每天几分 于 2015-3-9 14:03 编辑
额,跟前2天发的帖子差不多,那个是汉字在前面,现在这个是字母在前面。- kb 只
- kb 吧
- kbb 冀
- kbb 吡
- kbb 喈
- kbd 卟
- kbd 只
- kbd 叭
- kbd 吩
- kbd 呗
- kbd 员
- kbl 勋
- kbn 嘤
- kbp 邶
- kbp 郧
复制代码
文本如上,不用排序,如果每行的3个字母跟下两行的3个字母重复,则删除并提取出来,最终输入如下2个文本。- kb 只
- kb 吧
- kbl 勋
- kbn 嘤
- kbp 邶
- kbp 郧
复制代码
- kbb 冀
- kbb 吡
- kbb 喈
- kbd 卟
- kbd 只
- kbd 叭
- kbd 吩
- kbd 呗
- kbd 员
复制代码
作者: CrLf 时间: 2015-3-8 00:17
powershell:- $group = Get-Content a.txt | Group-Object {($_ -Split " ")[0]}
- $group | ForEach-Object {
- if($_.Count -ge 3){
- $_.Group >大等3.txt
- } else {
- $_.Group >小于3.txt
- }
- }
复制代码
作者: 每天几分 时间: 2015-3-8 09:22
回复 2# CrLf
不懂用这个powershell啊。。
作者: cobat 时间: 2015-3-8 10:56
本帖最后由 cobat 于 2015-3-8 11:56 编辑
改了下apang的代码- @echo off
- setlocal enabledelayedexpansion
- for /f %%a in ('type 1.txt^&echo,') do (
- if "%%a" neq "!b!" (
- if !n! geq 3 set s=!s! !b!
- set n=1
- ) else set/a n+=1
- set b=%%a
- )
- findstr /v "!s!" 1.txt>2.txt
- findstr "!s!" 1.txt>3.txt
- pause
复制代码
作者: pcl_test 时间: 2015-3-8 13:58
回复 3# 每天几分
把CrLf 的代码中的两个输出语句中的>改为>>
把a.txt(字库文件)放在C盘根目录下
使用powershell的几种方法
方法一、点开开始菜单->运行,输入powershell,确定(或者在命令提示符里键入powershell,回车) ->键入cd C: ,回车 ->把代码复制粘贴进去,按两次回车,在C盘根目录下就会生成“大等3.txt”和“小于3.txt”两个文件
方法二、点开开始菜单->所有程序 ->附件 ->Windows PowerShell ,这里有种方式:1、点击进入Windows PowerShell,余下步骤同方法一 2、点击进入Windows PowerShell ISE,上框同方法三,中框为反馈信息,下框同方法一
方法三、进入powershell,键入Set-ExecutionPolicy RemoteSigned ,回车,键入y,回车,把代码用记事本另存为xxx.ps1脚本文件,选中并右键xxx.ps1脚本文件 ->使用PowerShell运行
作者: pcl_test 时间: 2015-3-9 02:55
本帖最后由 pcl_test 于 2015-3-9 13:38 编辑
回复 3# 每天几分
问题得到解答以后在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |