Board logo

标题: [文本处理] 【已解决】批处理如何将多个文本里的指定字符/字符串替换成回车换行符 [打印本页]

作者: bbaa    时间: 2016-7-29 21:11     标题: 【已解决】批处理如何将多个文本里的指定字符/字符串替换成回车换行符

本帖最后由 bbaa 于 2016-8-1 19:23 编辑

bat如何将特定的内容替换成换行\r\n
有很多个文本
内容都只有一行
里面都有一个特定的分割符 以Html的<br/>
为例
如何把它替换成换行符(把它换行呢?)
  1. @Echo off
  2. setlocal enabledelayedexpansion
  3. set Lf=^
  4. for %%j in ("!Lf!") do (
  5.     for /f "delims=" %%i in (1.txt) do (
  6.         set "str=%%i"
  7.         set "str=!str:<br/>=%%~j!"
  8.         echo !str!>>1.tmp
  9.     )
  10. )
  11. more 1.tmp>1.txt
复制代码

已解决
作者: hlzj88    时间: 2016-7-29 22:22

  1. sed -i "s/<br \/>/<p>/g;s/<\/br>/<p>/g;s/<br\/>/<p>/g;s/<br>/<p>/g" "file"
  2. sed -i "s/<br\/>/\n<p>/g" "file"
复制代码
两行两个例子 1 所有跟br沾关系的都替换为<p>,对于网页,用浏览器打开就是换行的   2适合文本类需要直接效果,1 2 都是所有的都替换。
作者: pcl_test    时间: 2016-7-29 23:18

本帖最后由 pcl_test 于 2016-7-30 13:18 编辑

回复 2# hlzj88

应该说<br>或<br />在网页中才是换行,另可以这样sed -i -r "s/<br\s?\/?>/\r\n/g"
作者: gawk    时间: 2016-7-30 08:01

回复 2# hlzj88


这个场景使用其它符号作为s命令的分隔符比较好
  1. sed "s#<br/>#\r\n#g" 1.txt > 2.txt
复制代码

作者: hlzj88    时间: 2016-8-1 23:52

谢谢楼上两位指正。刚好可以借鉴。




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