中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 21:17
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何删除一个文件中指定行数的行内容 查看 1,130 回复 2
楼 主 [求助]如何删除一个文件中指定行数的行内容 发表于 2006-07-07 12:48 ·  中国 广东 珠海 电信
初级用户
积分 112
发帖 40
注册 2006-06-23 19:52
20年会员
UID 57473
性别 男
状态 离线
由于在mail.txt中有很多行重复的mail地址要删除掉。
这些要删除的行数位于DID.txt里,内容如下:

22
34
46
50
..
1230
1300
...


应该如何实现呢?晚上我把我的垃圾代码粘上来。但执行不成功。
2 发表于 2006-07-07 18:03 ·  中国 贵州 贵阳 电信
中级用户
★★
积分 304
发帖 117
注册 2006-04-04 18:43
20年会员
UID 53325
性别 男
状态 离线
findstr /l /v /c:@ mail.txt >>mail1.txt
3 发表于 2006-07-08 16:23 ·  中国 辽宁 锦州 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
21年会员
UID 40733
性别 男
状态 离线
你的问题可以试试下面的代码:

@echo off
for /f "tokens=1,2* delims=:" %%a in ('findstr /n "." mail.txt') do (
findstr /x "%%a" DID.txt >null ||echo.%%b
)
无奈何贴于 2006-07-08 16:09


问题是文本太大时代码执行效率比较低、速度比较慢,如果你只是单纯的去除重复的行,推荐用 AWK 处理速度比较理想。
代码如下:

gawk "!a++" mail.txt

gawk下载地址: http://www.klabaster.com/progs/gawk32.zip
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

论坛跳转: