标题: [文件操作] [已解决]批处理怎样删除一个文本的某一行? [打印本页]
作者: garyng 时间: 2011-9-29 19:49 标题: [已解决]批处理怎样删除一个文本的某一行?
本帖最后由 garyng 于 2011-9-29 22:25 编辑
有个文件
没有任何特殊字符但有空格(数量不定)
能不能
根据用户的输入
来删除/去除文本的其中一行
例如:
a.txt中:- aswehgt235 dkgjb asdglokih h
- wegtqwet2 235 edegwe24
- asdrghjbg 2asfg wet wregefrh
- etqwetkjb qwetoihqewtn qwet
- qwetoihwerg qwetkonwqet
- 2359087234 32456jmjm2346
- 324698713246nnnefg
- 2134897346
- sarg
- dasfg
复制代码
用户输入删除第四行
也就是:- etqwetkjb qwetoihqewtn qwet
复制代码
删除第四行后
文件a.txt变成:- aswehgt235 dkgjb asdglokih h
- wegtqwet2 235 edegwe24
- asdrghjbg 2asfg wet wregefrh
- qwetoihwerg qwetkonwqet
- 2359087234 32456jmjm2346
- 324698713246nnnefg
- 2134897346
- sarg
- dasfg
复制代码
就是这样~
帮帮忙~
作者: ArdentMan 时间: 2011-9-29 20:55
- @Echo Off
- Set /P Num=请输入要删除的行:
- (For /F "tokens=1* delims=:" %%a In ('Findstr /n .* a.txt') Do If %Num% NEQ %%a Echo %%b)>$
- Move $ a.txt
- Start a.txt
复制代码
作者: 601997526 时间: 2011-9-29 21:00
- @echo off
- set n=4
- (for /f "tokens=1,* delims=:" %%i in ('findstr /n ".*" a.txt') do if not %%i equ %n% echo.%%j)>b.txt
复制代码
作者: awk 时间: 2011-9-29 22:07
- @echo off
- set /p n=删除哪一行?
- sed -i "%n%d" a.txt
复制代码
作者: garyng 时间: 2011-9-29 22:18
回复 4# awk
发现awk爱用sed~
作者: garyng 时间: 2011-9-29 22:25
各位的答案都不错!
作者: FOR 时间: 2011-9-29 22:41
- @echo off
- set n=4
- gawk "NR != %n%" a.txt
- pause
复制代码
作者: awk 时间: 2011-9-29 22:50
回复 5# garyng
其实更爱awk
作者: garyng 时间: 2011-9-30 10:49
回复 8# awk
哈哈~sed哪里下啊?
还有楼上上的gawk哪里下?
作者: FOR 时间: 2011-9-30 12:01
回复 9# garyng
论坛的 第三方命令行 版块
http://bbs.bathome.net/thread-3981-1-1.html
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |