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

[文本处理] [已解决]批处理如何按条件复制或剪切文本内容到新的文本中?

[复制链接]
发表于 2011-8-15 11:44:25 | 显示全部楼层 |阅读模式
本帖最后由 xslxslxsl 于 2011-9-19 23:52 编辑

现有一个文件夹中有多个已ABC开头的文本文件(ABC1.TXT,ABC2.TXT......),文本的结构相同,下面数据中的空格实际上系TAB键,以tab键分隔数据
12 34 56 7 9 23
66 7 8 9 9 111
888 7 65 4 0 8
a b2 6t 11 33 6
a b c 6 9 i1
。。。。。。
将第四个空后的数据进行比较,若为9,则将整行复制或剪切出去,另存为新的文本
(即对文本数据中的第五列数据进行判断,若为9就将此行复制或剪切,另存为其他文本)
麻烦高手具体指点,不胜感激。

评分

参与人数 2PB -2 收起 理由
batman -4 重复发帖
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-8-15 11:57:32 | 显示全部楼层
本帖最后由 hanyeguxing 于 2011-8-15 13:22 编辑
  1. @echo off&CHCP 936&Set t=〇&CHCP 437
  2. for /f "delims=" %%a in ("%t%") do set t=%%a
  3. CHCP 936 >nul
  4. echo; 正在处理...
  5. (for %%a in (ABC*.txt) do for /f "useback tokens=1-4,5* delims=%t%" %%b in ("%%a") do if /i "%%c"=="9" echo;%%b%t%%%c%t%%%d)>>输出.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-8-15 22:13:40 | 显示全部楼层
麻烦高手再看看哦,谢谢了
 楼主| 发表于 2011-8-15 22:19:11 | 显示全部楼层
回复 2# hanyeguxing
忘记感谢二楼的版主了,谢谢你,我就是有点看不懂,呵呵,那你知道用FR或者SED如何可以实现吗
发表于 2011-8-15 22:51:01 | 显示全部楼层
  1. gawk "$5==9" a.txt | more >b.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-8-16 08:07:47 | 显示全部楼层
非常感谢大家,好像不是我要的效果,不过我还是很感谢大家,我再研究研究
发表于 2011-8-16 17:11:35 | 显示全部楼层
你想要什么样的结果啊?能不能给列出来
发表于 2011-8-16 19:18:03 | 显示全部楼层
回复 7# xslxslxsl


5楼得到的结果跟你的期望差异在何处?
 楼主| 发表于 2011-8-16 21:48:47 | 显示全部楼层
本帖最后由 xslxslxsl 于 2011-8-16 22:21 编辑

回复 9# CUer
若有几列的数字为空,那就不能正确判断了,那样就要定义分隔符了。
gawk -F "\t"  "$5==9" a1.txt | more >b1.txt
发表于 2011-8-16 22:56:50 | 显示全部楼层
回复 10# xslxslxsl


因为你顶楼发帖时根本没有提出这样的需求
 楼主| 发表于 2011-8-17 09:07:14 | 显示全部楼层
回复 11# CUer

呵呵,批评的是,我没有写清楚,感谢大家的关心,以后我会注意的哦,耽误大家时间了。
 楼主| 发表于 2011-8-17 11:56:02 | 显示全部楼层
非常感谢大家对我的帮助哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 03:08 , Processed in 0.019901 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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