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

[文本处理] 提取内容,组合与合并方向的批处理,谢谢您

您好,先谢谢您了。
下面的文本的第3 、 4行中,分部着一些中英日语言的词语,每个词用英文逗号隔开。
而其中有些词开头带# ,有些不带。

请帮忙提取# 开头的词,组合排列成1个新的行,插入到第2行的下面,然后删除原来的3 4行所有的内容。从而组成新的内容。

Ao - 凪白みと的插画
Ao by 凪白みと <div class="info"><p>
原创7500收藏,腋下,armed girls,#白发,swordsman
#オリジナル7500users入り,腋,#武器娘,白发,#剑士
90212924

Ao - 凪白みと的插画
Ao by 凪白みと <div class="info"><p>
原创7500收藏,腋下,armed girls,#白发,swordsman
#オリジナル7500users入り,腋,#武器娘,白发,#剑士
90212924


效果如下:
  1. Ao - 凪白みと的插画
  2. Ao by 凪白みと <div class="info"><p>
  3. オリジナル7500users入り,武器娘,白发,剑士
  4. 90212924
  5. Ao - 凪白みと的插画
  6. Ao by 凪白みと <div class="info"><p>
  7. オリジナル7500users入り,武器娘,白发,剑士
  8. 90212924
复制代码
谢谢!!!!

注: 并不是只有一组内容, 每组内容间隔 1个空行

TOP

555555555
大giegie们,谢谢大giegie们了!

TOP

用纯批倒是能实现,效率太低,不适合大文件。还是让大佬们来吧。

TOP

回复 4# qixiaobin0715


    5555 试试嘛。 一次也就100来组(1组5行,如文中的案例,文中那是2组。) ~

TOP

本帖最后由 qixiaobin0715 于 2021-6-5 16:13 编辑

回复 5# 灯塔彭于晏
算是抛砖引玉吧,主要是效率太低了,不好意思拿出来。每行都需要进行多次判断;第3/4行每组字符也需要判断,每组字符还要用到循环,最后排序。实际上连抛砖引玉也算不上,只怕抛出土柸把玉给砸了。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('findstr /n .* test.txt') do (
  4.     set /a k+=1
  5.     set /a "n=(k-1)%%7+1"
  6.     set "str=%%i"
  7.     set "str=!str:*:=!
  8.     if !n! lss 3 (
  9.         echo,!str!
  10.     ) else if !n! gtr 4 (
  11.         echo,!str!
  12.     ) else (
  13.         set m=100
  14.         for %%j in ("!str:,=","!") do (
  15.             set /a m+=1
  16.             set var=%%~j
  17.             if "!var:~,1!"=="#" set -!m!=!var:~1!
  18.         )
  19.     )
  20.     if !n! equ 4 (
  21.         for /f "tokens=1* delims==" %%a in ('set -') do (
  22.             set "str1=!str1!,%%b"
  23.             set %%a=
  24.         )
  25.         echo,!str1:~1!
  26.         set str1=
  27.     )
  28. )
  29. pause
复制代码
1

评分人数

    • 灯塔彭于晏: 效率一点也不差不说,为人也没的说。谢谢了技术 + 1

TOP

本帖最后由 netdzb 于 2021-6-3 10:29 编辑

回复 6# qixiaobin0715

他每次提的问题都是处理网页的标签,别人是帮助过他,
但他水平一直没进步啊。让人看了真有点恨铁不成钢的
感觉,处理网页标签不是用批处理的啊,论坛的python
版块也有例子,perl也能处理这个问题,python我有现在
用的少,我也等看一下有没有大神贴出更好的代码。

TOP

本帖最后由 newswan 于 2021-6-3 09:41 编辑
  1. sed -n -r -e "/#/!p ; /#/ { N ; s'\n','g ; s',',,'g ; s'^|$','g ; s',[^#,]+,''g ; s',#|,$''g ; p}"
复制代码
sed 太累
还可以用 批处理+grep 或者 powershell

TOP

回复 7# netdzb
伸手党(不具针对性)在论坛里确实有,但也不是没有一点作用:活跃气氛;解决问题的同时,对自己也是一种提高,教学互长吗。况且从伸手党成长起来的也不在少数。斑竹自有分寸,我们大可不必操太多的心。

TOP

回复 9# qixiaobin0715

问题是他的问题描述我也没怎么看懂,我如果有时间用python试一下了,目前我在学习js。

TOP

回复 7# netdzb


    思路是很简单,熟悉了工具就没什么难度。
    主要是来练习,学习一下别人的代码,能发现自己的盲点。互相帮助是很好的。

TOP

本帖最后由 灯塔彭于晏 于 2021-6-3 11:13 编辑

谢谢您的开放心态!作为伸手党的我,也正是从一开始就觉得这个论坛存在一帮热心助人的代码大神,从而染上了伸手白嫖的坏习惯。
不是不想学,是没时间学。

这些代码都是拿来去做另外一个网站的内容生产了。 而我这么多年和网友们维护那个网站,都是用成型了的开源,比如wordpress,比如宝塔,比如各种奇怪的wp插件。都没人会代码。遇到问题除了咨询伸手,也不可能现学现卖了,那样影响效率~!
一个简单的正则能卡我们一下午,最后的都是懂代码是什么东西的几位同学,从各方拼凑出来的。 还有很多只出钱,根本不懂代码,所以我们几个同学要做的事情太多了, 就根本没有学的精力了。  日常工作完,我们还得维护这个共同的爱好到深夜2点多,能睡个好觉就挺开心的了。

我们内心也是一直很感谢大家的帮助的, 只是的确方式上不好看。 但这不影响我们感谢的心。
谢谢大家,谢谢大家。

TOP

当初我也当过2年伸手党

TOP

本帖最后由 netdzb 于 2021-6-3 11:29 编辑

回复 12# 灯塔彭于晏

我希望能看到你求助贴的半自动模式,我现在主题大都
是半自动模式。别人回复解决了问题,我是在进步的。
你的进步速度一直是零,看的真是让人着急。

TOP

回复 6# qixiaobin0715


    行数一多,就乱了。
比如默认是5行字为1组,有的就剩3行字了,有的却成6行了,就比较尴尬~!

是不是因为在有的组里,第3和第4行并不都有#号字符, 而代码又是每行都去检索,最后组合的时候就出现了问题?

虽然一般来说第3和第4行里,都会出现#号字符的。但也会出现只有其中1行出现#号字符的情况的。

能否帮忙解决一下?
谢谢!

TOP

返回列表