标题: [文本处理] 【已解决】BAT批处理怎样删除含有重复的字符的行 [打印本页]
作者: elec 时间: 2014-5-14 12:02 标题: 【已解决】BAT批处理怎样删除含有重复的字符的行
本帖最后由 elec 于 2014-7-7 23:43 编辑
现有一个文本形如:- az1 cz1 cd2
- cz2 csd4 sdf5
- sdf3 twe5 sdg5
- sffg5 rgg2 ewg3
- ...
复制代码
我用数字来标识单词的类型,如果为同一类型的就删除此行。谢谢!!
删除第一行和第三行。(第一行含有重复的数字1, 第3行含有重复的数字5)
作者: HappyBirthday 时间: 2014-5-14 18:34
本帖最后由 HappyBirthday 于 2014-5-14 18:46 编辑
写的代码不太好,不过应该能用- setlocal enabledelayedexpansion
- for /f "tokens=*" %%i in (B:\a.txt) do (
- set dump=
- for %%a in (%%i) do (
- set tmp=%%a
- if not defined !tmp:~-1! (
- set !tmp:~-1!=1
- ) else (
- set dump=true
- )
- )
- for /l %%i in (0,1,9) do set %%i=
- if not !dump!==true echo %%i>>result.txt
- )
复制代码
作者: CrLf 时间: 2014-5-14 19:44
本帖最后由 CrLf 于 2014-5-15 00:32 编辑
- @echo off&setlocal enabledelayedexpansion
- set /a 类型上限=20
- for /l %%a in (1 1 %类型上限%) do (
- set "pattern=!pattern! [^^0-9]%%a[^^0-9].*[^^0-9]%%a\>"
- )
- findstr /v "!pattern!" "a.txt" >"b.txt"
复制代码
作者: elec 时间: 2014-5-14 23:55
回复 2# HappyBirthday
可以解释原理吗?我是初学者哈
作者: elec 时间: 2014-5-14 23:55
回复 3# CrLf
代码虽然简洁,但是感觉没效果??
作者: CrLf 时间: 2014-5-15 00:33
回复 5# elec
findstr 的 \< \> 没有想象中的强大,代码已修改
作者: elec 时间: 2014-5-15 10:31
回复 6# CrLf
谢谢大侠~~但是如果我想要删除重复单词的行呢?- asas qqqq ds fds fd qqqq
- hg dfg dsf sad ads
- aaa ds sdf aaa dsfgs qqq
- ad sad sdg hgf
复制代码
每个单词只能在同一行出现一次,如果有重复则删除此行。
例如:第一行重复qqqq,第三行重复aaa 。- hg dfg dsf sad ads
- ad sad sdg hgf
复制代码
作者: DAIC 时间: 2014-5-15 15:51
你好,我想问下。怎么安装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
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |