找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26017|回复: 7

[文本处理] 【已解决】BAT批处理怎样删除含有重复的字符的行

[复制链接]
发表于 2014-5-14 12:02:57 | 显示全部楼层 |阅读模式
本帖最后由 elec 于 2014-7-7 23:43 编辑

现有一个文本形如:
  1. az1   cz1   cd2
  2. cz2   csd4  sdf5
  3. sdf3   twe5   sdg5
  4. sffg5  rgg2   ewg3
  5. ...
复制代码
我用数字来标识单词的类型,如果为同一类型的就删除此行。谢谢!!
删除第一行和第三行。(第一行含有重复的数字1, 第3行含有重复的数字5)
发表于 2014-5-14 18:34:33 | 显示全部楼层
本帖最后由 HappyBirthday 于 2014-5-14 18:46 编辑

写的代码不太好,不过应该能用
  1. setlocal enabledelayedexpansion
  2. for /f "tokens=*" %%i in (B:\a.txt) do (
  3.         set dump=
  4.         for %%a in (%%i) do (
  5.                 set tmp=%%a
  6.                 if not defined !tmp:~-1! (
  7.                         set !tmp:~-1!=1
  8.                 ) else (
  9.                         set dump=true
  10.                 )
  11.         )
  12.         for /l %%i in (0,1,9) do set %%i=
  13.         if not !dump!==true echo %%i>>result.txt
  14. )
复制代码

评分

参与人数 1技术 +1 收起 理由
elec + 1 TKS~

查看全部评分

发表于 2014-5-14 19:44:37 | 显示全部楼层
本帖最后由 CrLf 于 2014-5-15 00:32 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set /a 类型上限=20
  3. for /l %%a in (1 1 %类型上限%) do (
  4.         set "pattern=!pattern! [^^0-9]%%a[^^0-9].*[^^0-9]%%a\>"
  5. )
  6. findstr /v "!pattern!" "a.txt" >"b.txt"
复制代码
 楼主| 发表于 2014-5-14 23:55:20 | 显示全部楼层
回复 2# HappyBirthday


    可以解释原理吗?我是初学者哈
 楼主| 发表于 2014-5-14 23:55:46 | 显示全部楼层
回复 3# CrLf


    代码虽然简洁,但是感觉没效果??
发表于 2014-5-15 00:33:07 | 显示全部楼层
回复 5# elec


    findstr 的 \< \> 没有想象中的强大,代码已修改
 楼主| 发表于 2014-5-15 10:31:50 | 显示全部楼层
回复 6# CrLf


    谢谢大侠~~但是如果我想要删除重复单词的行呢?
  1. asas qqqq ds fds fd qqqq
  2. hg dfg dsf sad ads
  3. aaa ds sdf aaa dsfgs qqq
  4. ad sad sdg hgf
复制代码
每个单词只能在同一行出现一次,如果有重复则删除此行。

例如:第一行重复qqqq,第三行重复aaa 。
  1. hg dfg dsf sad ads
  2. ad sad sdg hgf
复制代码
发表于 2014-5-15 15:51:49 | 显示全部楼层
你好,我想问下。怎么安装sed及gawk?我将你提供的链接下载好了sed.exe gawk.exe。双击它算安装好了吗?可是在DOS界面还是调用不了grep...提示grep是不是内部命令。。我在win7 32位 和 XP 上Ju均试过无效。。请求帮忙~~

不需要安装
把exe文件放到C:\Windows\system32文件夹下面就行了

下载地址:
http://code.google.com/p/gnu-on-windows/downloads/list
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 07:14 , Processed in 0.011506 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表