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

[文本处理] 批处理文件如何将一行分为多行?

[复制链接]
发表于 2012-1-4 19:18:01 | 显示全部楼层 |阅读模式
以下是一个歌词文件,整个文件只有一行,想把它按时间重新分行,一句歌词一行,每行前面都有时间。试了一些方法,有时候可行,有时候不行,想看看大家的思路。谢谢!

  1. [ti:天籁传奇]?[ar:凤凰传奇]?[by:习]?[00:01.00]凤凰传奇 - 天籁传奇?[00:05.00]?[00:07.00]作词:刘新圈 作曲:郭永利?[00:11.00]www.99Lrc.com =>速配歌词 配词?[00:23.85](美丽的草原 别说我不在)?[00:29.46]?[00:35.02]水到这方清 草到这方绿?[00:40.38]梦中溪水潺潺 流进我心里?[00:45.89]花儿悄悄开 寻着花香去?[00:51.23]满山开放的红杜鹃 哪一朵是你?[00:56.71]天到这方蓝 云到这方白?[01:02.13]站在山顶就想把 星星摘下来?[01:07.59]绿草也无垠 春风吹过来?[01:13.12]你就是我魂牵梦绕的那一片海?[01:18.53]美丽的草原 别说我不在?[01:24.01]我就是你身边 那一朵云彩?[01:29.48]不一样的河流 不一样的山脉?[01:34.82]我想变成一只蝴蝶 自由自在?[01:40.40]Rap: 有一种喜悦 叫做等待?[01:43.10]有一种幸福 我们都在?[01:45.91]就像是曾经 拥有的爱?[01:48.60]瞬间的感觉 无法表白?[01:51.40]轻轻叫醒我 把心打开?[01:54.07]让我忘记那 过去现在?[01:56.75]别问我明天 是否离开?[01:59.48]时光外看你 如花盛开?[02:02.15]天到这方蓝 云到这方白?[02:07.52]站在山顶就想把 星星摘下来?[02:13.06]绿草也无垠 春风吹过来?[02:18.45]你就是我魂牵梦绕的那一片海?[02:23.92]美丽的草原 别说我不在?[02:29.43]我就是你身边 那一朵云彩?[02:34.82]不一样的河流 不一样的山脉?[02:40.28]我想变成一只蝴蝶 自由自在?[02:45.89]Rap: 有一种喜悦 叫做等待?[02:51.37]有一种幸福 我们都在?[02:56.78]别问我明天 是否离开?[03:02.22]时光外看你 如花盛开?[03:06.24]花盛开想听歌,就上MP3音乐网=> www.93MP3.com?[03:07.80]美丽的草原 别说我不在?[03:13.09]我就是你身边 那一朵云彩?[03:18.59]不一样的河流 不一样的山脉?[03:23.97]我想变成一只蝴蝶 自由自在?[03:29.36]草原的风声 是我的天籁?[03:34.85]吹落前世今生 都化作尘埃?[03:40.36]不一样的心情 不一样的等待?[03:45.81]我想变成一滴露珠 留在你心海?[03:51.41]
复制代码
整理后应该是这样:
[ti:天籁传奇]?
[ar:凤凰传奇]?
[by:习]?
[00:01.00]凤凰传奇 - 天籁传奇?
[00:05.00]?
[00:07.00]作词:刘新圈 作曲:郭永利?
[00:11.00]www.99Lrc.com =>速配歌词 配词?
[00:23.85](美丽的草原 别说我不在)?
……
发表于 2012-1-4 19:31:38 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. set hh=^


  3. for %%a in ("!hh!") do (
  4.    for /f "delims=" %%b in (1.lrc) do (
  5.      endlocal
  6.      set str=%%b
  7.      setlocal enabledelayedexpansion
  8.      for /f "delims=" %%c in ("!str:[=%%~a[!") do echo %%c
  9.   )
  10. )
复制代码

评分

参与人数 1PB +12 收起 理由
cjiabing + 12 乐于助人

查看全部评分

发表于 2012-1-4 20:58:08 | 显示全部楼层
  1. sed "s/\[/\n&/g" a.txt >b.txt
复制代码

评分

参与人数 1PB +12 收起 理由
cjiabing + 12 乐于助人

查看全部评分

 楼主| 发表于 2012-1-5 00:58:24 | 显示全部楼层
回复 2# CrLf


    非常好用,谢谢!
    第一个变量时会显示回显关闭之类的。
发表于 2012-1-6 07:37:03 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (lyrc) do (
  3. set "str=%%i"
  4. set str=!str:[=^

  5. [!
  6. echo=!str!
  7. )
  8. pause>nul
复制代码

评分

参与人数 1PB +12 收起 理由
cjiabing + 12 乐于助人

查看全部评分

发表于 2012-1-9 13:02:46 | 显示全部楼层
不错,学习学习
 楼主| 发表于 2012-1-9 16:39:11 | 显示全部楼层
回复 5# asnahu


    谢谢!~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 14:16 , Processed in 0.020398 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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