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

[文本处理] 如何将文本里每行前5位字符相同的行进行分组并找出每组中后5位数字的值最大的一个

[复制链接]
发表于 2012-12-24 18:42:01 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-11-13 22:59 编辑

I1E0000001         
I1E0004997
I1E0004998
I1E0004999
I1E0005000
I1ET000001
I1ET000002
I1ET000003
I1GTC00001
I1GTC00002
I1GTC15000
左边是样本文本A.TXT    前五位固定 后五位是编号 编号最大能到99999
我想提取出后五位编号最大的一组
例如 前五位 I1E00  他的编号最大的一组是05000  就把这一组提取出来

最后得到的结果是
I1E0005000
I1ET000003
I1GTC15000
请会的朋友帮忙 谢谢
发表于 2012-12-24 19:39:55 | 显示全部楼层
本帖最后由 tmplinshi 于 2012-12-24 19:41 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. (
  4.     for /f %%i in (' sort /r "a.txt" ') do (
  5.         set str=%%i
  6.         if "!_last:~0,5!" neq "!str:~0,5!" (echo %%i)
  7.         set _last=!str!
  8.     )
  9. ) >"%~f0.tmp"

  10. sort "%~f0.tmp" >result.txt
  11. del "%~f0.tmp"
复制代码
发表于 2012-12-24 22:33:24 | 显示全部楼层
似乎没达到要求,但是总体思路是不错了。
发表于 2016-11-13 23:20:09 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('type "文本.txt"') do (
  3.     set "str=%%a"
  4.     for /f "delims=" %%b in ("!str:~,5!") do (
  5.         if not defined #%%b (
  6.             set #%%b=!str:~5,5!
  7.         ) else (
  8.             if !str:~5^,5! geq !#%%b! set #%%b=!str:~5,5!
  9.         )
  10.     )
  11. )
  12. for /f "tokens=1,2 delims=#=" %%a in ('set #') do echo;%%a%%b
  13. pause
复制代码
发表于 2016-11-13 23:29:03 | 显示全部楼层
  1. rem win7及以上系统运行
  2. more +3 "%~f0"|powershell -c "$input|group {$_.Substring(0,5)}|%%{$_.group|sort -descending|select -first 1}"
  3. pause&exit
  4. I1E0000001
  5. I1E0004997
  6. I1E0004998
  7. I1E0004999
  8. I1E0005000
  9. I1ET000001
  10. I1ET000002
  11. I1ET000003
  12. I1GTC00001
  13. I1GTC00002
  14. I1GTC15000
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 15:04 , Processed in 0.088502 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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