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

[文本处理] 批处理如何指定删除文本的第几行?

有一批txt文档, 全部将各自的第三行整行删除掉!

谢谢
有创新,多创新;无创新,多模仿;无模仿,多坚持

本帖最后由 CrLf 于 2011-12-6 13:44 编辑

用 for 循环你懂得
  1. more +3 a.txt>b.txt
  2. ::适合处理少量大文件
复制代码
  1. (for /f "skip=3 delims=" %%a in (a.txt) do echo %%a)>b.txt
  2. ::适合处理大量小文件,输出不含空行
复制代码
  1. findstr /n .* *.txt|findstr /vb "[^:]*:[123]:"
  2. ::适合处理大量大文件
复制代码

TOP

回复 2# CrLf


    版主你好,谢谢你这么快百忙之中的回复!
我用gawk

麻烦帮我看看
gawk "NR==3" *.txt & del

这个哪里错啊

显示第三行并删除这一行
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

  1. gawk "NR!=3" a.txt >b.txt
复制代码

TOP

回复 4# awk


    你好 awk
假如是处理一堆文件怎么写呢
刚刚测试了一下a.txt的单个文件是成功的哦
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

本帖最后由 545810831 于 2011-12-7 10:38 编辑

把处理过的文本放入b文件夹
  1. @echo off
  2. if not exist b md b
  3. for %%i in (*.txt) do (
  4. for /f "tokens=1,2 delims=:" %%a in ('findstr /n ".*" "%%~i"') do if  %%a neq 3 echo %%b>>"b\%%i"
  5. )
  6. pause
复制代码

TOP

回复 5# fanfande
  1. @echo off
  2. for %%a in (*.txt) (
  3.     gawk "NR!=3" "%%a" >"%%a.new"
  4. )
复制代码

TOP

路过看看情况,哎

TOP

返回列表