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

[文件操作] 批处理如何把前面相同的数字排在一起?

[复制链接]
发表于 2021-11-28 11:40:01 | 显示全部楼层 |阅读模式
a.txt

101*7*8**8*7*
366*7**6***7
245**45*4**4*
358*1**622***
115**786***54*
144***532*4**
001*4*4*8*5*6*

101*8**5*7*5*0
358**3*4**2*6*
366**4*7*0**0*
115*4*4*1**46*



应输出
b.txt

101*7*8**8*7*
101*8**5*7*5*0
366*7**6***7
366**4*7*0**0*
245**45*4**4*
358*1**622***
358**3*4**2*6*
115**786***54*
115*4*4*1**46*
144***532*4**
001*4*4*8*5*6*


想把前面3个相同的数字排在一起, 然后做按原先后排列去重复行,  
文本大概有20mb左右 ,所以想用Powershell放在bat脚本执行
Thanks
发表于 2021-11-28 19:14:14 | 显示全部楼层
  1. powershell "$a=type a.txt;foreach($b in $a){$c=$b[0..2] -join '';$d+=@($a -match "^$c")};$d[0..($a.count-1)]" >b.txt
复制代码
 楼主| 发表于 2021-11-28 20:30:58 | 显示全部楼层
回复 2# idwma


   很好Thanks,  但是如果a.txt有空行情况会不准确   另外还需去重复行  idwma哥哥
 楼主| 发表于 2021-11-28 20:43:16 | 显示全部楼层
回复 2# idwma


  
  1. powershell Get-Content -Path a.txt | select-object -unique | Out-File -FilePath b.txt
复制代码

idwma哥哥  为什么我这个去重复行 放在bat里没有任何反应呢
发表于 2021-11-29 09:25:44 | 显示全部楼层
回复 2# idwma

    如果前三位相同的在很前面,会重复哒。
101*7*8**8*7*
101*8**5*7*5*0
366*7**6***7
发表于 2021-11-29 10:03:21 | 显示全部楼层
  1. powershell -c "Get-Content -Path a.txt | Sort-Object -Property @{Expression = { $_.SubString(0, [Math]::Min(3, $_.Length)) } ; Ascending = $true; } -Unique"
复制代码
 楼主| 发表于 2021-11-29 10:32:29 | 显示全部楼层
回复  idwma

    如果前三位相同的在很前面,会重复哒。
101*7*8**8*7*
101*8**5*7*5*0
366*7**6*** ...
for_flr 发表于 2021-11-29 09:25



   不会重复哒     重复数据是看整行
 楼主| 发表于 2021-11-29 10:42:27 | 显示全部楼层
回复 6# flashercs


   嗯嗯Thanks    按长度做去重复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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