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

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

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

回复 6# flashercs


   嗯嗯Thanks    按长度做去重复

TOP

回复  idwma

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



   不会重复哒     重复数据是看整行

TOP

  1. powershell -c "Get-Content -Path a.txt | Sort-Object -Property @{Expression = { $_.SubString(0, [Math]::Min(3, $_.Length)) } ; Ascending = $true; } -Unique"
复制代码
微信:flashercs
QQ:49908356

TOP

回复 2# idwma

    如果前三位相同的在很前面,会重复哒。
101*7*8**8*7*
101*8**5*7*5*0
366*7**6***7

TOP

回复 2# idwma


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

idwma哥哥  为什么我这个去重复行 放在bat里没有任何反应呢

TOP

回复 2# idwma


   很好Thanks,  但是如果a.txt有空行情况会不准确   另外还需去重复行  idwma哥哥

TOP

  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
复制代码

TOP

返回列表