标题: [文本处理] 批处理如何提取/获取txt文本中两个指定字符串之间的行内容? [打印本页]
作者: aa007651 时间: 2019-3-16 13:41 标题: 批处理如何提取/获取txt文本中两个指定字符串之间的行内容?
示例文本:
!$(P04324354456546)~hdasjhdkahd_kadkashdkdsahdjk~大大哈哈好,大萨达,laingd@aa.com
dsadd_app~asdjkajdl~dsfksdhfkj
dsakdjlkasj_app~sajdkhsajk~sjkshfjka~哈哈哈哈哈哈~哈哈哈哈哈~987644456678888876554~132356555998~对对对
dsadasdsadas
dskakdhkashdk
dsahdashdkjsa
asdjkashdjka
askdhjkash
hasjkdhjka
eoj
!$(P04324354456546)~hdasjhdkahd_kadkashdkdsahdjk~大大dsad好,大sd达,laingd@aa.com
dsadd_app~asdjkajdl~dsfksdhfkj
dsakdjlkasj_app~sajdkhsajk~sjkshfjka~哈哈d哈fg哈g哈~s哈d哈哈~987644456678888876554~132356555998~对对对
dsadasdsadasdd
dskakdhkashdkdddd
dsahdassadsahdjkaddsadd
hasjkdhddddjkaddd
sddjsakhdkjahdka
eoj
很多行的数据,假设这个文件名是text.txt,里面都是以!$(P04开头,eoj结束,期间都是不规则的数据文本,什么字符都有,
请问各位老师怎么可以实现,我从1.txt中导入P04开头的字符串匹配出text.txt对应的数据,并且将对应的!$(P04xx)直至eoj直接输出到2.txt中?
求指教,我是小白,请详细一点,谢谢。
作者: aa007651 时间: 2019-3-16 16:30
有朋友帮忙一下吗?没有迟点再问
作者: zaqmlp 时间: 2019-3-16 16:41
- @echo off
- title 互助互利,代码可用,扫码头像,感谢赞助;有什么问题,可加QQ956535081及时沟通
- set "输入=text.txt"
- rem 自行修改,可单个或多个,以英文逗号分隔
- set "提取=!$(P04,!$(P05,!$(P12"
- set "输出=2.txt"
- powershell ^
- $result='';$list=('%提取%').split(',');^
- $text=[IO.File]::ReadAllText('%输入%', [Text.Encoding]::Default);^
- for($i=0; $i -lt $list.length; $i++){^
- if($text.Contains($list[$i])){^
- $reg=[regex]::escape($list[$i])+'[\s\S]+?\neoj(\r?\n^|$)';^
- $m=[regex]::matches($text,$reg);^
- for($j=0; $j -lt $m.count; $j++){^
- $result+=$m[$j].value;^
- };^
- };^
- };^
- out-file -file '%输出%' -input $result -enc Default;
- pause
复制代码
作者: aa007651 时间: 2019-3-17 13:19
回复 3# zaqmlp
运行不了呀
作者: aa007651 时间: 2019-3-24 15:51
顶上去,有人帮忙吗
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |