标题: [文本处理] [已解决]批处理--文本多行合并 [打印本页]
作者: hlzj88 时间: 2015-11-20 17:04 标题: [已解决]批处理--文本多行合并
本帖最后由 hlzj88 于 2015-11-21 13:04 编辑
现有文本若干,大小不一。特点如下
(4个空格)第一行
第二行
第三行
(以此类推)
想得到的结果是 :有空格就作为每行的开端,没空格的行全部合并到前面。
想过,不会做。求助!!
作者: 依山居 时间: 2015-11-20 18:30
自己找sed awk 和正则表达式的教程自己学去。
作者: hlzj88 时间: 2015-11-21 10:27
求人不如求己,换个思路,轻松搞定。- @echo off
- del /q 1.html>nul 2>nul
- setlocal EnableDelayedExpansion
- echo 批量文本整理 (思路:利用网页代码自动合并然后提取)
- echo 因为是把行首无空格的追到有空格的行,因此最好是保证文本内容正确,特别是废文要处理好。
- pause
- for /f "delims=" %%a in ('dir /b *.txt') do (
- echo %%a
- for /f "delims=" %%i in (%%a) do (
- set "foo=%%i"
- set foo=!foo: =^</p^>^<p^>^ ^ ^ ^ !
- set foo=!foo: =^</p^>^<p^>^ ^ ^ ^ !
- echo !foo!>>1.html
- )
- htox32c /IP /O0 1.html>nul 2>nul
- move /y 1.txt "%%a">nul 2>nul
- del 1.html>nul 2>nul
- )
- rem htox32c是需要下载的
- pause
复制代码
作者: hlzj88 时间: 2015-11-21 13:03
以前下的sed也许是版本问题,一直不能用,,所以对sed比较排斥,细读sed帮助,看来还是要学会用强大的sed.
作者: pcl_test 时间: 2016-8-21 14:31
- //&cls&cscript -nologo -e:jscript "%~f0"<"文本.txt"&pause&exit
- 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'});
- WSH.Echo(text);
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |