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

[文本处理] 批处理怎样将一个文本的前10行剪切粘贴到另一个文本里?

[复制链接]
发表于 2010-10-17 22:02:43 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-11-29 20:27 编辑

剪切文本a.txt 里面的 前10行 到 文本 b.txt 中 (如果b.txt已经有内容,进行覆盖)

以 截取 3行 为例:
a.txt
1
2
3
4
5

b.txt
46
6
6

批处理之后的结果

a.txt
4
5

b.txt
1
2
3

刚来到这里,希望大家多指点和帮助,谢谢

[ 本帖最后由 kwsensen 于 2010-10-17 22:06 编辑 ]
发表于 2010-10-17 22:20:11 | 显示全部楼层
  1. @echo off
  2. type nul >b.txt
  3. for /f "tokens=1* delims=:" %%a in ('type a.txt^|findstr /n .* ^&del a.txt') do if %%a leq 10 (echo,%%b>>b.txt) else (echo,%%b>>a.txt)
复制代码
若要3行 改 if %%a leq 10 中10 为3即可

评分

参与人数 1技术 +1 收起 理由
kwsensen + 1 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2010-10-17 22:51:55 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd.>b.txt
  4. for /f "delims=" %%i in (a.txt) do (set /a a+=1
  5.   if !a! leq 10 echo %%i>>b.txt)
  6. ren a.txt a1.txt&more +10 a1.txt>a.txt&del a1.txt
  7. pause
复制代码
 楼主| 发表于 2010-10-17 22:52:32 | 显示全部楼层
原帖由 yangfengoo 于 2010-10-17 22:20 发表
@echo off
type nul >b.txt
for /f "tokens=1* delims=:" %%a in ('type a.txt^|findstr /n .* ^&del a.txt') do if %%a leq 10 (echo,%%b>>b.txt) else (echo,%%b>>a.txt)若要3行 改 if %%a leq 10 中10 为3即可


谢谢,测试有效。 如果a.txt文件行数很大的时候,执行速度有点慢。
针对 行数大的文件有更高效的方法吗?  搜索了一下,不知道采用 gawk 是否能提速呢?
发表于 2010-10-28 11:54:23 | 显示全部楼层
  1. @Echo off&setlocal enabledelayedexpansion
  2. cd.>b.txt
  3. for /f "delims=" %%i in (a.txt) do (
  4.     set /a n+=1
  5.     if !n! leq 10 (echo %%i>>b.txt)
  6.     if !n!==10 (cd.>a.txt)
  7.     if !n! gtr 10 (echo %%i>>a.txt)
  8. )
  9. pause>nul
复制代码
发表于 2010-10-28 12:51:17 | 显示全部楼层
  1. gawk "NR<=3" 1.txt >2.txt
  2. gawk "NR>3" 1.txt >"%temp%\1.tmp"
  3. move /y "%temp%\1.tmp" 1.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 10:59 , Processed in 0.088057 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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