Board logo

标题: (已解决)30块钱求助批量删除txt文本重复行(不是百分之百相似) [打印本页]

作者: 黄大人    时间: 2020-7-31 00:29     标题: (已解决)30块钱求助批量删除txt文本重复行(不是百分之百相似)

本帖最后由 黄大人 于 2020-7-31 09:10 编辑

具体报酬:30元
支付方式:微信
联系方式:问题已解决-已删除
有效期限:问题已解决

1、行与行不是百分之百相似,现要求是截取前面的15个(我自己可设置)汉字去比较,如相似则保留第一行,其余相似行删除。
2、要有备份,处理之后的文件自动保存到别一文件夹。

处理前:
<p><em>电闪雷鸣</em>之后,暴雨发疯似的下起来。发出噼噼的响声。</p>
<p><em>电闪雷鸣</em>之后,暴雨发疯似的下起来。发出“噼噼啪啪”的响声。</p>
<p>苍鹰,却在黄草地的上空,自由自在的飞翔,它背负着蓝天,但是,上空却把它的翅膀磨砺得能够刺破苍天!</p>
<p><em>电闪雷鸣</em>之后,暴雨发疯似的下起来。发出“噼噼”的响声。</p>
<p><em>电闪雷鸣</em>之后,暴雨发疯似的下起来。骤然间,[整理]发出“噼噼啪啪”的响声。</p>
<p>苍鹰,却在黄草地的上空,自由自在的飞翔,它背负着蓝天,却把它的翅膀磨砺得能够刺破苍天!</p>
<p><em>电闪雷鸣</em>之后,暴雨发疯似的下起来。骤然间,天地间像隔着一层纱,迷迷蒙蒙,发出"噼噼"的响声。</p>
<p>苍鹰,却在黄草地的上空,自由自在的飞翔,它背负着蓝天,似乎在召唤春天的到来。得能够刺破苍天!</p>
<p>人生的风景不会永远风和日丽,也许阴雨绵绵会在明天,也许<em>电闪雷鸣</em>就在现在,不要因为一时的困难而怀疑一切的美好,请坚信美好的未来属于你!</p>

处理后:

<p><em>电闪雷鸣</em>之后,暴雨发疯似的下起来。发出噼噼的响声。</p>
<p>苍鹰,却在黄草地的上空,自由自在的飞翔,它背负着蓝天,但是,上空却把它的翅膀磨砺得能够刺破苍天!</p>
<p>人生的风景不会永远风和日丽,也许阴雨绵绵会在明天,也许<em>电闪雷鸣</em>就在现在,不要因为一时的困难而怀疑一切的美好,请坚信美好的未来属于你!</p>
作者: zaqmlp    时间: 2020-7-31 01:11

本帖最后由 zaqmlp 于 2020-7-31 01:18 编辑
  1. <# :
  2. cls
  3. @echo off
  4. cd /d "%~dp0"
  5. powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~f0'"
  6. pause
  7. exit
  8. #>
  9. $self=get-item -liter $args[0];
  10. $path=$self.Directory.FullName
  11. $len=15;
  12. $newfolder=$path+'\#result';
  13. if(-not (test-path -liter $newfolder)){[void](md $newfolder)};
  14. $files=@(dir -liter $path|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
  15. for($i=0;$i -lt $files.length;$i++){
  16.     write-host $files[$i].Name;
  17.     [System.Collections.ArrayList]$s=@();
  18.     $dic=New-Object 'System.Collections.Generic.Dictionary[string,string]';
  19.     $enc=[Text.Encoding]::Default;
  20.     $text=[IO.File]::ReadAllLines($files[$i].FullName, $enc);
  21.     for($j=0;$j -lt $text.count;$j++){
  22.         $tmpline=$text[$j] -replace '[^\u4e00-\u9fa5]','';
  23.         $a=$tmpline.length;
  24.         $line=$tmpline;
  25.         if($len -lt $a){$line=$tmpline.substring(0, $len);}
  26.         if(-not $dic.ContainsKey($line)){
  27.             $dic.add($line,'');
  28.             [void]$s.add($text[$j]);
  29.         };
  30.     };
  31.     $newfile=$newfolder+'\'+$files[$i].Name;
  32.     [IO.File]::WriteAllLines($newfile, $s, $enc);
  33. };
复制代码

作者: ivor    时间: 2020-7-31 06:35

本帖最后由 ivor 于 2020-7-31 15:29 编辑
  1. #! /usr/bin/env python3
  2. # coding:utf-8
  3. """
  4. 取前15字符重复的行的第一行
  5. """
  6. source_file = '2.txt'   # 源文件
  7. new_file = '3.txt'      # 新文件路径
  8. pre_len = 15
  9. d = dict()
  10. with open(source_file,'r',encoding='utf-8') as sou, open(new_file,'w',encoding='utf-8') as new:
  11.     for i in sou:
  12.         if i[:pre_len] not in d:
  13.             d[i[:pre_len]] = i       # 前15个字符
  14.     new.write(''.join(d.values()))
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2