Board logo

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

作者: 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 编辑
  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
复制代码

作者: xslxslxsl    时间: 2011-8-15 22:13

麻烦高手再看看哦,谢谢了
作者: xslxslxsl    时间: 2011-8-15 22:19

回复 2# hanyeguxing
忘记感谢二楼的版主了,谢谢你,我就是有点看不懂,呵呵,那你知道用FR或者SED如何可以实现吗
作者: CUer    时间: 2011-8-15 22:51

  1. 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://www.bathome.net/) Powered by Discuz! 7.2