找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 10835|回复: 3

[文本处理] 求助批处理在指定字符后换行

[复制链接]
发表于 2024-12-6 09:26:42 | 显示全部楼层 |阅读模式
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
发表于 2024-12-6 10:32:03 | 显示全部楼层
本帖最后由 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
复制代码
发表于 2024-12-6 10:37:04 | 显示全部楼层
回复 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
复制代码
发表于 2024-12-6 16:32:52 | 显示全部楼层
本帖最后由 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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 14:24 , Processed in 0.017822 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表