[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [待帮助]批处理提取内容并重新排列内容,谢谢您了

谢谢您了先。 内容如下:
现有文本a.txt(上传到附件了),内容如下:
  1. 你好你叫什么名字1
  2. 我叫彭于晏<div class="ss"></div>
  3. 成龙,彭于晏,#吴彦祖
  4. wuyanzu
  5. 你好你叫什么名字2
  6. 我叫彭于晏<div class="ss"></div>
  7. 成龙,#彭于晏,吴彦祖
  8. wuyanzu
  9. 你好你叫什么名字3
  10. 我叫彭于晏<div class="ss"></div>
  11. #成龙,彭于晏,吴彦祖
  12. wuyanzu
  13. 你好你叫什么名字4
  14. 我叫彭于晏<div class="ss"></div>
  15. 成龙,彭于晏,#吴彦祖
  16. wuyanzu
复制代码
每组内容中间有2行空格。每组内容的第3行中, 有一个词前面有#号(位置不一定的)逗号为英文状态
需求如下:[1]提取#号的字插入到2行与3行中间, 使之重新排列成5行(原本4行) ; [2] 并去掉文本中的# 。

效果如:
  1. 你好你叫什么名字1
  2. 我叫彭于晏<div class="ss"></div>
  3. 吴彦祖
  4. 成龙,彭于晏,吴彦祖
  5. wuyanzu
  6. 你好你叫什么名字2
  7. 我叫彭于晏<div class="ss"></div>
  8. 彭于晏
  9. 成龙,彭于晏,吴彦祖
  10. wuyanzu
  11. 你好你叫什么名字3
  12. 我叫彭于晏<div class="ss"></div>
  13. 成龙
  14. 成龙,彭于晏,吴彦祖
  15. wuyanzu
  16. 你好你叫什么名字4
  17. 我叫彭于晏<div class="ss"></div>
  18. 吴彦祖
  19. 成龙,彭于晏,吴彦祖
  20. wuyanzu
复制代码
谢谢您了!

本帖最后由 qixiaobin0715 于 2021-3-10 22:36 编辑
  1. @echo off
  2. (for /f "delims=" %%a in ('findstr /n ".*" a.txt') do (
  3.     set "str=%%a"
  4.     setlocal enabledelayedexpansion
  5.     set "str=!str:*:=!"
  6.     if "!str!"=="" (
  7.         echo,
  8.     )else if "!str:#=!"=="!str!" (
  9.         echo,!str!
  10.     ) else (
  11.         for %%b in (!str!) do set "str1=%%b"&if "!str1:~0,1!"=="#" echo,!str1:~1!
  12.         echo,!str:#=!
  13.     )
  14. ))>b.txt
  15. pause
复制代码

TOP

本帖最后由 flashercs 于 2021-3-10 22:13 编辑
  1. sed -E -e "s/(.*)#(\w*)(.*)/\2\n\1\2\3/" a.txt>b.txt
复制代码
论坛下载sed.exe http://bcn.bathome.net/tool/4.8/sed.exe
1

评分人数

微信:flashercs
QQ:49908356

TOP

回复 2# qixiaobin0715


    请问输出到b.txt文本怎么改呢?

TOP

回复 4# 灯塔彭于晏
已修改
1

评分人数

TOP

返回列表