标题: [文本处理] [已解决]批处理如何按条件复制或剪切文本内容到新的文本中? [打印本页]
作者: xslxslxsl 时间: 2011-8-15 11:44 标题: [已解决]批处理如何按条件复制或剪切文本内容到新的文本中?
本帖最后由 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就将此行复制或剪切,另存为其他文本)
麻烦高手具体指点,不胜感激。
作者: hanyeguxing 时间: 2011-8-15 11:57
本帖最后由 hanyeguxing 于 2011-8-15 13:22 编辑
- @echo off&CHCP 936&Set t=〇&CHCP 437
- for /f "delims=" %%a in ("%t%") do set t=%%a
- CHCP 936 >nul
- echo; 正在处理...
- (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
复制代码
作者: xslxslxsl 时间: 2011-8-15 22:13
麻烦高手再看看哦,谢谢了
作者: xslxslxsl 时间: 2011-8-15 22:19
回复 2# hanyeguxing
忘记感谢二楼的版主了,谢谢你,我就是有点看不懂,呵呵,那你知道用FR或者SED如何可以实现吗
作者: CUer 时间: 2011-8-15 22:51
- gawk "$5==9" a.txt | more >b.txt
复制代码
作者: xslxslxsl 时间: 2011-8-16 08:07
非常感谢大家,好像不是我要的效果,不过我还是很感谢大家,我再研究研究
作者: wanglei8312 时间: 2011-8-16 17:11
你想要什么样的结果啊?能不能给列出来
作者: CUer 时间: 2011-8-16 19:18
回复 7# xslxslxsl
5楼得到的结果跟你的期望差异在何处?
作者: xslxslxsl 时间: 2011-8-16 21:48
本帖最后由 xslxslxsl 于 2011-8-16 22:21 编辑
回复 9# CUer
若有几列的数字为空,那就不能正确判断了,那样就要定义分隔符了。
gawk -F "\t" "$5==9" a1.txt | more >b1.txt
作者: CUer 时间: 2011-8-16 22:56
回复 10# xslxslxsl
因为你顶楼发帖时根本没有提出这样的需求
作者: xslxslxsl 时间: 2011-8-17 09:07
回复 11# CUer
呵呵,批评的是,我没有写清楚,感谢大家的关心,以后我会注意的哦,耽误大家时间了。
作者: xslxslxsl 时间: 2011-8-17 11:56
非常感谢大家对我的帮助哦
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |