标题: [文本处理] [已解决]求助批处理截取TXT指定内容 [打印本页]
作者: liziyunabcd 时间: 2023-4-14 12:45 标题: [已解决]求助批处理截取TXT指定内容
本帖最后由 liziyunabcd 于 2023-4-14 14:33 编辑
求助:截取指定内容下面有编号的行、段落,把这些内容另存为 "原来的TXT名子"+新的.txt。 这个新的TXT就生成在原来TXT边上。
TXT内容如下:
张学友
1、情网:
2、问你爱我有多情
3、情深深雨蒙蒙。
张学友是香港人,歌手,演员。
截取后的内容为:
1、情网:
2、问你爱我有多情
3、情深深雨蒙蒙。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、
崩溃了,我用AI生成了最少十几次,没一次成功的,不得不来求助大神们了。
作者: qixiaobin0715 时间: 2023-4-14 12:52
- findstr /b "[1-9][0-9]*、" 1.txt>2.txt
复制代码
作者: liziyunabcd 时间: 2023-4-14 13:01
回复 2# qixiaobin0715
上面的代码真牛逼啊,一下把所有的编号都搜出来了
卧槽..... 牛逼,可以呀.一下就出来了,大神,能不能加个搜索呢,搜索那个关键词“张学友”。
因为这个文本里还有其他的1、2、3、的编号.
作者: liziyunabcd 时间: 2023-4-14 13:41
刘得发:
1、《峰回路转》
2、《孤星泪》
3、《相思成灾》
刘得发是香港人,歌手,演员。
张学友
1、情网:
2、问你爱我有多情
3、情深深雨蒙蒙。
张学友是香港人,歌手,演员。
文本大概是这样子
作者: Batcher 时间: 2023-4-14 14:03
回复 4# liziyunabcd - @echo off
- cd /d "%~dp0"
- for /f "delims=:" %%i in ('findstr /n /b "张学友" "1.txt"') do (
- if not defined RowFlag (
- set "RowBegin=%%i"
- set "RowFlag=1"
- ) else (
- set "RowEnd=%%i"
- )
- )
- call :GetList %RowBegin%
- exit /b
-
- :GetList
- (for /f "skip=%1 tokens=1* delims=:" %%a in ('findstr /n .* "1.txt"') do (
- if %%a equ %RowEnd% (
- exit /b
- ) else (
- echo,%%b
- )
- ))>"2.txt"
复制代码
作者: Batcher 时间: 2023-4-14 14:12
回复 4# liziyunabcd
调用第三方命令行工具 sed.exe 比较简洁
http://bcn.bathome.net/s/tool/index.html?key=sed- sed "/张学友/,/张学友/!d" 1.txt | findstr /v "张学友" > 2.txt
复制代码
作者: qixiaobin0715 时间: 2023-4-14 15:15
- @echo off
- setlocal enabledelayedexpansion
- (for /f "tokens=1* delims=、" %%i in (1.txt) do (
- if defined n (
- set /a n+=1
- if %%i equ !n! (echo,%%i、%%j) else set n=
- ) else (
- if %%i equ 张学友 set n=0
- )
- ))>2.txt
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |