您的位置:首页 > 其它

删除重复内容行

2017-01-19 17:51 183 查看

删除重复内容行

由于要处理一个两万多行的数据,但要删除其中内容重复的行,所以找了几个方法:
1. 用sed替换重复内容,使用命令 -n "G;s/\n/&&/;/^\(.*\n\).*\n\1/d; s/\n//;h;P"
"$(FilePath)" (这里是在editplus里的使用,注意$(FilePath)必须是带路径的文件名)。当然sed不需依赖editplus,可以单独使用的。优点:删除重复内容后,顺序结构不变。缺点:不支持UTF-8,处理大文件时(2w多行)就不行了。
2.使用editplus-工具-排序,勾选"删除重复"。可惜不想把内容排序,却被自动排序了。(勾选"区分位置",好像没用?),这个效率相当快~差不多是瞬间完成的,之所以没放弃editplus,确实它的优点有很多。
3.使用一个批处理
@echo
off

:: 删除重复的行,但不能保留空行

:: 对不符合变量命名规则、变量个数超过限制的文本都无法正确处理

(echo 清除重复行后的文件内容:& echo.)>str_.txt

for /f "delims=" %%i in (testText.txt) do (

if not defined %%i set %%i=A & echo %%i>>str_.txt)

:: start str_.txt

当然也不支持utf8,效率也比较慢,处理2w多行用了1分多钟,不过排序没有改变:)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: