Board logo

标题: [文本处理] 如何用批处理删除文件指定行以后的内容。 [打印本页]

作者: artisan    时间: 2020-9-16 16:50     标题: 如何用批处理删除文件指定行以后的内容。

本帖最后由 artisan 于 2020-9-16 18:58 编辑

新人求助,我有一个a.txt文件 里面有100行。想直接删掉后面40行。网上查了一下用more可以删除前几行。
电脑无法安装gitbash用不了sed命令。
搜不到别的方法了。
请问大神能否用for实现,怎么写。
作者: netdzb    时间: 2020-9-16 19:25

回复 1# artisan

split不是可以以行来分割文件的。
作者: netdzb    时间: 2020-9-16 19:28

回复 1# artisan

for的写法就是读取前面60行。

for  (....)
{
  行号判断
  echo %%i > dest.txt
} < src.txt

大概是这样的结构,论坛有这个的代码的。
我要去忙了,回来再回复你。
作者: netdzb    时间: 2020-9-16 19:30

回复 1# artisan

本论坛我发过一个gnu版本的sed 4.8,你去搜一下。
作者: Batcher    时间: 2020-9-16 21:39

回复 1# artisan


从这里下载一个 sed.exe 试试
http://bcn.bathome.net/s/tool/index.html?key=sed
作者: qixiaobin0715    时间: 2020-10-3 12:23

  1. @echo off
  2. set /p Lines=请输入总行数
  3. set /a str=%Lines%-40
  4. setlocal enabledelayedexpansion
  5. set n=0
  6. (for /f "delims=" %%a in (a.txt) do (
  7. set /a n+=1
  8. echo %%a
  9. if !n! geq %str% goto abc
  10. ))>1.txt
  11. :abc
  12. pause
复制代码
回复 1# artisan




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2