[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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就将此行复制或剪切,另存为其他文本)
麻烦高手具体指点,不胜感激。
2

评分人数

    • batman: 重复发帖PB -4
    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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

评分人数

    • CrLf: 乐于助人技术 + 1
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

麻烦高手再看看哦,谢谢了

TOP

回复 2# hanyeguxing
忘记感谢二楼的版主了,谢谢你,我就是有点看不懂,呵呵,那你知道用FR或者SED如何可以实现吗

TOP

  1. gawk "$5==9" a.txt | more >b.txt
复制代码
1

评分人数

TOP

非常感谢大家,好像不是我要的效果,不过我还是很感谢大家,我再研究研究

TOP

你想要什么样的结果啊?能不能给列出来
学习中。。。

TOP

回复 7# xslxslxsl


5楼得到的结果跟你的期望差异在何处?

TOP

本帖最后由 xslxslxsl 于 2011-8-16 22:21 编辑

回复 9# CUer
若有几列的数字为空,那就不能正确判断了,那样就要定义分隔符了。
gawk -F "\t"  "$5==9" a1.txt | more >b1.txt

TOP

回复 10# xslxslxsl


因为你顶楼发帖时根本没有提出这样的需求

TOP

回复 11# CUer

呵呵,批评的是,我没有写清楚,感谢大家的关心,以后我会注意的哦,耽误大家时间了。

TOP

非常感谢大家对我的帮助哦

TOP

返回列表