标题: [文本处理] 请教各位老师,怎样批量查找指定字符并提取指定行? [打印本页]
作者: xuexibat 时间: 2019-5-25 11:26 标题: 请教各位老师,怎样批量查找指定字符并提取指定行?
文本条件
1,文件夹/n个文本(txt)
2,文本内容用特殊符号标注信息(如:“*” )
问题
1,怎样批量查找文本内容有一个符合条件 “*” 并提取第一行或者任意行保存为另一个文本?
2,怎样批量查找文本内容有两个或者多个符合条件 “*” 并提取第一行或者任意行保存为另一个文本?
作者: zaqmlp 时间: 2019-5-25 15:19
- @echo off
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- cd /d "%~dp0"
- powershell -NoProfile -ExecutionPolicy bypass ^
- $lines=@(1);^
- $list=@('*');^
- [System.Collections.ArrayList]$s=@();^
- $files=@(dir -r^|?{($_.Extension -eq '.txt') -and ($_ -is [System.IO.FileInfo])});^
- for($i=0;$i -lt $files.length;$i++){^
- $text=[IO.File]::ReadAllText($files[$i].FullName, [Text.Encoding]::Default);^
- $n=0;^
- for($j=0;$j -lt $list.length;$j++){^
- if($text.Contains($list[$j])){$n++;};^
- };^
- if($list.length -eq $n){^
- write-host $files[$i].FullName;^
- $text=$text -split '\r?\n';^
- for($j=0;$j -lt $lines.length;$j++){^
- if($lines[$j] -le $text.length){^
- [void]$s.add($text[$lines[$j]-1]);^
- };^
- };^
- };^
- };^
- [IO.File]::WriteAllLines('结果.log', $s, [Text.Encoding]::Default);^
- write-host '%info%' -ForegroundColor green;
- pause
复制代码
作者: xuexibat 时间: 2019-5-25 16:44
回复 2# zaqmlp
多谢!请你喝瓶水了。学习了。自己有找到了分为两次处理的代码。还是非常感谢!
作者: zaqmlp 时间: 2019-5-25 20:24
回复 3# xuexibat
多行可以这样复制代码
多条件可以这样- $list=@('*','wer','#','2@ee');^
复制代码
作者: xuexibat 时间: 2019-5-27 10:49
回复 4# zaqmlp
多谢!学习了。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |