Board logo

标题: [文本处理] 求助批处理在指定字符后换行 [打印本页]

作者: meiszp    时间: 2024-12-6 09:26     标题: 求助批处理在指定字符后换行

txt文件内容如下,希望在“提取码:mwuw”后面添加换行符,整理成最下面的形式。
求bat代码,谢谢!

0026 计算流体力学基础及其应用(美.约翰D.安德森)2007链接:https://pan.baidu.com/s/1oJ_JajS9rt-o0xHFiZZFA提取码:mwuw 0027 机械工程材料学链接:https://pan.baidu.com/s/1YDtOXoujelLxn5qr3PLMg提取码:gy9i 0028 精密机械制造工艺学链接:https://pan.baidu.com/s/1ap2PWQdfdRlwKMTap4blw提取码:kl9x 0029 最佳结构设计_R.H 加拉格尔链接:http://pan.baidu.com/s/1gda14f密码:gdbf 0030 机械设计实用机构与装置图册链接:https://pan.baidu.com/s/1CBa1rbCUF6ZbrfzLGPG_A提取码:gn00 0031 焊接技巧100招链接:https://pan.baidu.com/s/1PbiQsJL-ptuQNriB3NPCQ提取码:hs0b 

0026 计算流体力学基础及其应用(美.约翰D.安德森)2007链接:https://pan.baidu.com/s/1oJ_JajS9rt-o0xHFiZZFA提取码:mwuw
0027 机械工程材料学链接:https://pan.baidu.com/s/1YDtOXoujelLxn5qr3PLMg提取码:gy9i
0028 精密机械制造工艺学链接:https://pan.baidu.com/s/1ap2PWQdfdRlwKMTap4blw提取码:kl9x
0029 最佳结构设计_R.H 加拉格尔链接:http://pan.baidu.com/s/1gda14f密码:gdbf
0030 机械设计实用机构与装置图册链接:https://pan.baidu.com/s/1CBa1rbCUF6ZbrfzLGPG_A提取码:gn00
0031 焊接技巧100招链接:https://pan.baidu.com/s/1PbiQsJL-ptuQNriB3NPCQ提取码:hs0b
作者: aloha20200628    时间: 2024-12-6 10:32

本帖最后由 aloha20200628 于 2024-12-6 12:14 编辑

回复 1# meiszp

用 sed.exe 一行流》可从本坛第三方下载(落地即用) http://bcn.bathome.net/s/tool/index.html?key=sed
1.txt 的整理结果存为 2.txt
  1. sed -E -e "s/(码:[0-9a-z]+)/\1\n/gi" -e "s/ ([0-9]{4} )/\1/g" 1.txt>2.txt
复制代码
若源文件 1.txt 是utf-8编码,须用下式且不必切换65001码页,其结果文件 2.txt 仍是utf-8编码...
  1. sed --locale=zh_cn.utf8 -E -e "s/(码:[0-9a-z]+)/\1\n/gi" -e "s/ ([0-9]{4} )/\1/g" 1.txt>2.txt
复制代码

作者: hfxiang    时间: 2024-12-6 10:37

回复 1# meiszp

下载sed( http://bcn.bathome.net/tool/4.9/sed.exe

对于文本编码为UTF-8
  1. sed -i -r "s/細(....) /細\1\n/g" 1.txt
复制代码
对于文本编码为ANSI
  1. sed -i -r "s/:(....) /:\1\n/g" 1.txt
复制代码

作者: aloha20200628    时间: 2024-12-6 16:32

本帖最后由 aloha20200628 于 2024-12-6 16:37 编辑

回复 1# meiszp

再给一个批处版本
  1. @echo off &setlocal
  2. (for /f "delims=" %%s in (1.txt) do set "b=%%s" &call :xxx)>2.txt
  3. endlocal&pause&exit/b
  4. :xxx
  5.    for /f "tokens=1* delims=:" %%a in ("%b%") do (set "a=%%a"&set "b=%%b")
  6.    if "%a:~-1%"=="码" (set/p="%a%:%b:~,4%"<nul&echo,&set "b=%b:~5%") else (set/p="%a%:"<nul)
  7.    if "%b%"=="" (exit/b) else goto :xxx
复制代码
若源文件 1.txt 是utf-8编码,以上代码第一行须改为如下行,且脚本代码亦须改存为utf-8编码...
  1. @echo off &chcp 65001>nul &setlocal
复制代码





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