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

[文本处理] 批处理怎样实现每10个句子后面加一个标志?

每10个句子后面加一个<br/>,每50个句子后面加一个"http://www.baidu.com"

句子是以句号,问好,感叹号结束;


很感谢这里!

我做英文SEO,希望认识技术的朋友 呵呵 QQ720140 9

只以说zm版主敬业又执着,很明显楼主是什么党来着。。。
***共同提高***

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (a.txt) do set /p=%%a
  3. echo;)<nul>tmp
  4. (for /f "delims=" %%a in (tmp) do (
  5.    set tmp=%%a
  6.    set tmp=!tmp:?=.?!
  7.    for /l %%b in (1 1 100) do (
  8.       for /f "tokens=1-10* delims=." %%c in ("!tmp!") do (
  9.          set /a "n=(n+1)%%5"
  10.          if !n!==0 set www=www.baidu.com
  11.          set echo=%%c.%%d.%%e.%%f.%%g.%%h.%%i.%%j.%%k.%%l.!www!^</br^>
  12.          for /l %%z in (1 1 10) do set echo=!echo:..=.!
  13.          echo !echo:.?=.!
  14.          set www=
  15.          set tmp=%%m
  16.       )
  17.    )
  18. ))>b.txt
  19. pause
复制代码

TOP

24# gung


水平有限...
楼主把我搞晕了,假如原文每个自然段中包含的句数不定,那到底是合并所有自然段后重新分段?还是既保留原有自然段,同时还按十句一周期来分段?或者是以十句一周期分段,但这个周期不超 ...
zm900612 发表于 2011-5-24 22:23


一个txt不分段落,每10个句子后面一个br ;每50个句子后面一个wwwbaiducom  

TOP

24# gung


看不懂不要紧,你可以分别测试一下那些代码,然后给出详细的测试结果。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

24# gung


水平有限...
楼主把我搞晕了,假如原文每个自然段中包含的句数不定,那到底是合并所有自然段后重新分段?还是既保留原有自然段,同时还按十句一周期来分段?或者是以十句一周期分段,但这个周期不超过原有自然段的长度?

TOP

关键我不懂代码 呵呵

试过了22楼得 发现br出现的很密集 有时候9个 有时候5个就有br了

TOP

20# gung


你能否先总结下,这么多人提供了这么多代码,为何你的问题还是没解决?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (a.txt) do (
  3.    set tmp=%%a
  4.    set tmp=!tmp:?=.?!
  5.    for /l %%b in (1 1 100) do (
  6.       for /f "tokens=1-10* delims=." %%c in ("!tmp!") do (
  7.          set /a "n=(n+1)%%5"
  8.          if !n!==0 set www=www.baidu.com
  9.          set echo=%%c.%%d.%%e.%%f.%%g.%%h.%%i.%%j.%%k.%%l.!www!^</br^>
  10.          for /l %%z in (1 1 10) do set echo=!echo:..=.!
  11.          echo !echo:.?=.!
  12.          set www=
  13.          set tmp=%%m
  14.       )
  15.    )
  16. ))>b.txt
  17. pause
复制代码

TOP

本来也想用正则的,可惜水平跟不上,只能写出批处理思路的vbs来解决了,呵呵。。。
***共同提高***

TOP

大侠们 谁总结一下我的问题怎么弄?









我的思想:几十篇文章放在一个txt里边,然后打乱,然后随机加入br,用br来作为标识符作为分割点,然后来生成很多小的txt文件

TOP

纯批貌似也可以...不过只以句号为分隔符@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (a.txt) do (
   set tmp=%%a
   set tmp=!tmp:?=.?!
   for /l %%b in (1 1 100) do (
      for  ...
zm900612 发表于 2011-5-23 18:44

输出到>>txt 咋办?

TOP

本帖最后由 plp626 于 2011-5-24 20:36 编辑
  1. gawk "BEGIN {FS=\".\"};{for (i=1;i<=NF;i++){printf \"%s\",$i; if(i==10)printf \".^<br/^>\";if (i==50)printf \".http://www.baidu.com \"}}" a.txt
复制代码

TOP

今天开始看awk,这个用gawk怎么弄?

TOP

既然用vbs,怎能不用正则表达式?
  1. Set regEx = new RegExp
  2. regEx.Global = true
  3. regEx.IgnoreCase = false
  4. Set fso = CreateObject("Scripting.FileSystemObject")
  5. txt = fso.OpenTextFile("a1.txt").ReadAll()
  6. regEx.Pattern = "(?:[^.?!]+[.?!]){10}"
  7. txt = regEx.Replace(txt, "$&<br/>")
  8. regEx.Pattern = "(?:[^.?!]+[.?!]){50}"
  9. txt = regEx.Replace(txt, "$&""http://www.baidu.com""")
  10. fso.OpenTextFile("a2.txt", 2, true).Write txt
复制代码
1

评分人数

TOP

返回列表