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

[文本处理] [已解决]批处理--文本多行合并

本帖最后由 hlzj88 于 2015-11-21 13:04 编辑

现有文本若干,大小不一。特点如下
(4个空格)第一行
第二行
第三行
(以此类推)

想得到的结果是 :有空格就作为每行的开端,没空格的行全部合并到前面。
想过,不会做。求助!!
目的,学习批处理

  1. //&cls&cscript -nologo -e:jscript "%~f0"<"文本.txt"&pause&exit
  2. var text = WSH.StdIn.ReadAll().replace(/(^|\r?\n)[ ]{4}[\s\S]+?(?=($|\r?\n[ ]{4}))/g,function(a){return a.replace(/[\r\n]/g,'')+'\r\n'});
  3. WSH.Echo(text);
复制代码

TOP

以前下的sed也许是版本问题,一直不能用,,所以对sed比较排斥,细读sed帮助,看来还是要学会用强大的sed.
目的,学习批处理

TOP

求人不如求己,换个思路,轻松搞定。
  1. @echo off
  2. del /q 1.html>nul 2>nul
  3. setlocal EnableDelayedExpansion
  4. echo 批量文本整理    (思路:利用网页代码自动合并然后提取)
  5. echo 因为是把行首无空格的追到有空格的行,因此最好是保证文本内容正确,特别是废文要处理好。
  6. pause
  7. for /f "delims=" %%a in ('dir /b *.txt') do (
  8. echo %%a
  9.   for /f "delims=" %%i in (%%a) do (
  10.     set "foo=%%i"
  11.     set foo=!foo:    =^</p^>^<p^>^&nbsp;^&nbsp;^&nbsp;^&nbsp;!
  12.     set foo=!foo:  =^</p^>^<p^>^&nbsp;^&nbsp;^&nbsp;^&nbsp;!
  13.     echo !foo!>>1.html
  14.   )
  15. htox32c /IP /O0 1.html>nul 2>nul
  16. move /y 1.txt "%%a">nul 2>nul
  17. del 1.html>nul 2>nul
  18. )
  19. rem htox32c是需要下载的
  20. pause
复制代码
目的,学习批处理

TOP

自己找sed awk 和正则表达式的教程自己学去。
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

返回列表