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

[文本处理] 替换txt中2个指定字符(字符串)中间的文本

源文件的内容:
#EXTINF:0 tvg-logo="http://iptv-vod.eu/iptv/logo/3.png" group-title="Общественные"  tvg-name="http://m.tv.yandex.ru/213/channels/146" ,Первый канал
http://82.200.127.58:8080/udp/239.0.42.81:1224
#EXTINF:0 tvg-logo="http://iptv-vod.eu/iptv/logo/3.png" group-title="Общественные"  tvg-name="http://m.tv.yandex.ru/213/channels/146" ,Первый канал
http://82.200.127.58:8080/udp/239.0.42.121:1224
#EXTINF:0 tvg-logo="http://iptv-vod.eu/iptv/logo/1.png" group-title="Общественные"  tvg-name="http://m.tv.yandex.ru/213/channels/79" ,СТС
http://82.200.127.58:8080/udp/239.0.42.93:1224

寻找#EXTINF:与,之间的内容并替换成:
#EXTINF:-1 ,Первый канал
http://82.200.127.58:8080/udp/239.0.42.81:1224
#EXTINF:-1 ,Первый канал
http://82.200.127.58:8080/udp/239.0.42.121:1224
#EXTINF:-1,СТС
http://82.200.127.58:8080/udp/239.0.42.93:1224

请教大神怎么实现?先谢了!

http://batch-cn.qiniudn.com/tool/4.0.7/sed.exe
  1. sed -i "s/#EXTINF:.*,/#EXTINF:-1 ,/g" 1.txt
复制代码
保护好源文件
目的,学习批处理

TOP

回复 3# suchost


    没成功?就三个字神也帮不了你,想要即时解决问题,加论坛群或我QQ33892006,不可能一分钟60秒都守在这吧。

TOP

回复 2# yhcfsr


    没成功啊,大神

TOP

本帖最后由 yhcfsr 于 2018-1-11 14:04 编辑
  1. @echo off
  2. set "ScDir=D:\temp"
  3. set "spt1=#EXTINF:"
  4. set "spt2=,"
  5. cd /d "%ScDir%"
  6. for /f  "delims=" %%a in ('dir /a-d /s /b *.txt') do (
  7. for /f  "delims=" %%i in ('findstr /n ".*" "%%a"') do (
  8.         set "var=%%i"
  9.         setlocal enabledelayedexpansion
  10.         set var=!var:*:=!
  11. echo;!var!|findstr "%spt1%">nul
  12. if !errorlevel!==0 (
  13. rem 提取尾部字符串
  14. call :get_string "!var!" end_str
  15. rem 生成新的字符串
  16. set "var=%spt1%-1 %spt2%!end_str!"
  17. echo !var!
  18. ) else if !var!. neq . (echo !var!) else (echo.)
  19. endlocal
  20. )>>"%%a.log"  
  21. rem 删除move前rem可对源文件进行替换
  22. rem move /y "%%a.log" "%%a">nul   
  23. )
  24. pause
  25. exit
  26. rem 获取,后结尾字符串
  27. :get_string
  28. setlocal
  29. set "name=%~1"
  30. :lp
  31. call set "ch=%%name:~%i%,1%%"
  32. if "%ch%" neq "%spt2%" set /a i-=1&goto :lp
  33. set /a i+=1
  34. call set "name=%%name:~%i%%%"
  35. endlocal&set "%2=%name%"&goto:eof
复制代码

TOP

返回列表