找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23924|回复: 7

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

[复制链接]
发表于 2010-5-30 09:00:40 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-9-8 11:50 编辑

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

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

谢谢了!!

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

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢主动给标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2010-5-30 09:58:22 | 显示全部楼层
没人知道么?

还是太简单没人告诉我~

小弟新手 批处理不太懂!

忘大家见谅~懂的告诉一下!!
发表于 2010-5-30 10:15:43 | 显示全部楼层
  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"
复制代码

评分

参与人数 1PB +5 收起 理由
Batcher + 5 乐于助人

查看全部评分

 楼主| 发表于 2010-5-30 10:27:18 | 显示全部楼层
谢谢~用上了~

凑字......
发表于 2010-5-30 10:46:22 | 显示全部楼层
  1. head -n 300 1.txt >2.txt
复制代码

评分

参与人数 1PB +3 收起 理由
Batcher + 3 乐于助人

查看全部评分

发表于 2010-5-30 10:47:24 | 显示全部楼层
  1. sed "1,300!d" 1.txt >2.txt
复制代码
发表于 2010-5-30 10:48:19 | 显示全部楼层
  1. gawk "NR>=1&&NR<=300" 1.txt >2.txt
复制代码
发表于 2010-5-31 13:09:28 | 显示全部楼层
这是一个麻烦的方法,最后还得FOR去掉行号,不过也是一种思路吧

  1. type test.txt |findstr /n .*|findstr "^[0-9] ^[0-9][0-9]: ^[0-2][0-9][0-9]: ^300:"
复制代码

评分

参与人数 1PB +3 收起 理由
Batcher + 3 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 07:43 , Processed in 0.032398 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表