有的时候,你可能需要对文本文件去除重复行,比如分析log时,不想被重复的行干扰,这里提供个ps方法,主要用到.net中的泛型类HashSet
以下介绍来自网上:
HashSet<T>类
HashSet<T>类主要是设计用来做高性能集运算的,例如对两个集合求交集、并集、差集等。集合中包含一组不重复出现且无特性顺序的元素。
HashSet<T>的一些特性如下:
1、HashSet<T>中的值不能重复且没有顺序。
2、HashSet<T>的容量会按需自动添加。
$spath="c:\Users\softy\Desktop\EAO.TXT" $dpath="c:\Users\softy\Desktop\EAO_NEW.TXT" [System.Collections.Generic.HashSet[string]]$lines=Get-Content -Path $spath -ReadCount 0 Set-Content -Path $dpath -Value ($lines -join "`r`n")
对一个270M的文本文件进行了测试,我的电脑上耗时约17秒,但内存消耗比较大,近800M,代码还是比较简短的
$ls=Get-Content -Path $spath -ReadCount 0|Select-Object -Unique Set-Content -Path $dpath -Value ($lines -join "`r`n")
你也可以这样来比比看效果
本文链接: https://www.pstips.net/remove-duplicates-lines.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!