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

[文本处理] [已解决]批处理怎样提取/保留文本中指定的行?

本帖最后由 pcl_test 于 2016-9-8 11:50 编辑

TXT文本中有无数行 想保留前N行 请问怎么写

例如X.TXT中内容如下:
1
2
3
4
5
.....
9999行       我想只保留前300行

谢谢了!!

[ 本帖最后由 wangl 于 2010-5-30 10:52 编辑 ]
1

评分人数

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

没人知道么?

还是太简单没人告诉我~

小弟新手 批处理不太懂!

忘大家见谅~懂的告诉一下!!

TOP

  1. :: 保留文本中的前 N 行(覆盖原文件)
  2. @echo off
  3. :: -------- 设置 --------
  4. set File="X.TXT"
  5. set N=300
  6. :: -------- /设置 --------
  7. if not exist %File% exit
  8. if not defined N exit
  9. findstr /n .* %File% > "%temp%\tmp"
  10. (
  11.     for /f "usebackq delims=" %%a in ("%temp%\tmp") do (
  12.         set Var=%%a
  13.         set /a Line = Var
  14.         SetLocal EnableDelayedExpansion
  15.         if !Line! leq !N! echo,!Var:*:=!
  16.         EndLocal
  17.     )
  18. ) > %File%
  19. del "%temp%\tmp"
复制代码
1

评分人数

TOP

谢谢~用上了~

凑字......

TOP

  1. head -n 300 1.txt >2.txt
复制代码
1

评分人数

TOP

  1. sed "1,300!d" 1.txt >2.txt
复制代码

TOP

  1. gawk "NR>=1&&NR<=300" 1.txt >2.txt
复制代码

TOP

这是一个麻烦的方法,最后还得FOR去掉行号,不过也是一种思路吧
  1. type test.txt |findstr /n .*|findstr "^[0-9] ^[0-9][0-9]: ^[0-2][0-9][0-9]: ^300:"
复制代码
1

评分人数

TOP

返回列表