[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理怎样删除一个文本的某一行?

本帖最后由 garyng 于 2011-9-29 22:25 编辑

有个文件
没有任何特殊字符但有空格数量不定

能不能
根据用户的输入
删除/去除文本的其中一行

例如:
a.txt中:
  1. aswehgt235 dkgjb asdglokih h
  2. wegtqwet2 235 edegwe24
  3. asdrghjbg 2asfg wet wregefrh
  4. etqwetkjb qwetoihqewtn qwet
  5. qwetoihwerg qwetkonwqet
  6. 2359087234 32456jmjm2346
  7. 324698713246nnnefg
  8. 2134897346
  9. sarg
  10. dasfg
复制代码
用户输入删除第
也就是:
  1. etqwetkjb qwetoihqewtn qwet
复制代码
删除第四行后
文件a.txt变成:
  1. aswehgt235 dkgjb asdglokih h
  2. wegtqwet2 235 edegwe24
  3. asdrghjbg 2asfg wet wregefrh
  4. qwetoihwerg qwetkonwqet
  5. 2359087234 32456jmjm2346
  6. 324698713246nnnefg
  7. 2134897346
  8. sarg
  9. dasfg
复制代码
就是这样~

帮帮忙~
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @Echo Off
  2. Set /P Num=请输入要删除的行:
  3. (For /F "tokens=1* delims=:" %%a In ('Findstr /n .* a.txt') Do If %Num% NEQ %%a Echo %%b)>$
  4. Move $ a.txt
  5. Start a.txt
复制代码
1

评分人数

一路飘过的鸟~~~

TOP

  1. @echo off
  2. set n=4
  3. (for /f "tokens=1,* delims=:" %%i in ('findstr /n ".*" a.txt') do if not %%i equ %n% echo.%%j)>b.txt
复制代码
1

评分人数

TOP

  1. @echo off
  2. set /p n=删除哪一行?
  3. sed -i "%n%d" a.txt
复制代码
1

评分人数

TOP

回复 4# awk


   发现awk爱用sed~

TOP

各位的答案都不错!

TOP

  1. @echo off
  2. set n=4
  3. gawk "NR != %n%" a.txt
  4. pause
复制代码
1

评分人数

TOP

回复 5# garyng


其实更爱awk

TOP

回复 8# awk


   哈哈~sed哪里下啊?
   还有楼上上的gawk哪里下?

TOP

回复 9# garyng


    论坛的 第三方命令行 版块
  http://bbs.bathome.net/thread-3981-1-1.html

TOP

返回列表