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

[文本处理] 批处理将文本中每行第一个指定字符前的字符串相同的行输出到以该字符串命名的文本里

[复制链接]
发表于 2015-5-28 21:06:21 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-10-14 13:46 编辑

14131370@TCAC DFE@T7G0345444_ABCE1403240013200.txt@ 14365184010  3243 3243 DFSFE 720 5 13 12 9 47 152 297 54 64 32 32
14131370@TCAC TTT@AEG0342344_LOKIJ1403343313200.txt@ 14363134310  3243 3243 CCFEF 720 5 13 13 9 47 145 297 50 64 32 33
14131310@TCAC AJUE@T7G0343954_ABCE1403240013200.txt@ 14365485070  3243 3243 FDSFDF 720 5 23 12 9 47 144 297 52 64 32 32
4131370@EEAB2 THF@T7G0345334_ABCE1403240013200.txt@ 14069188010  3243 3243 CCFEF 720 5 13 12 9 47 143 297 10 64 32 32

第一个@前面的数字 做为关键字  很明显结果是 14131370  14131310   4131370
然后针对这3个关键字 建立3个新文本文件  文件名就取上面这3个数   然后把关键字相同的行剪切到各自对应的文本文件里

里面需要注意的是关键字的完整匹配 14131370和4131370   有可能会混淆

文件有500多万行 请会的朋友帮帮忙
发表于 2015-5-28 22:22:50 | 显示全部楼层
  1. @echo off
  2. ::gawk下载地址http://batch-cn.qiniudn.com/tool/gawk.exe
  3. gawk -F "@" "{print $0>>$1".txt"}" "测试.txt"
  4. echo;完成
  5. pause
复制代码
发表于 2015-5-29 14:02:25 | 显示全部楼层
纯P
  1. @echo off
  2. for /f "tokens=1* delims=@" %%i in (测试.txt) do (
  3.     >>%%i.txt echo;%%i@%%j
  4. )
  5. pause
复制代码
bat+js

  1. @if(0)==(0) echo off & cscript -NoLogo -E:JScript %0 <测试.txt & pause & exit & @end
  2. var fso = new ActiveXObject("Scripting.FileSystemObject")
  3. var re = /(.*?)@.*/;
  4. while (!WScript.StdIn.AtEndOfStream){
  5.     var str = WScript.StdIn.ReadLine();
  6.     var filename = str.replace(re,'$1') + ".txt"
  7.     var f = fso.OpenTextFile(filename,8,true);
  8.     f.WriteLine(str);
  9.     f.Close()
  10. }
复制代码
发表于 2015-7-9 01:19:25 | 显示全部楼层
回复 2# pcl_test


    print $0 还可简写成 print
发表于 2015-7-9 09:59:13 | 显示全部楼层
回复 5# CrLf


    感谢指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 20:48 , Processed in 0.029627 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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