脑子不灵活的我只能用最原始的方式弄出来,powershell代码- $inf="a.txt"
- $otf="b.txt"
- $r='企业\s*名称.+|退出'
-
- $inf=[io.file]::ReadAllLines($pwd.path+"\$inf",[text.encoding]::Default)
- if(!$inf){exit}
- $n=0
- $f=[System.IO.StringWriter]::new()
-
- for($i=0;$i -lt $inf.Length;$i++){
- if(!$inf[$i]){$f.WriteLine();continue}
-
- if($n -and $n[1]){
-
- $m=[regex]::Match($inf[$i],"$r")
- if($m.success -and ($m.value -eq "退出")){$f.WriteLine($inf[$i]);$n=0;continue}
- #if($m.success -and ($m.value.split(':')[1] -eq $n.split(':')[1])){$f.WriteLine($inf[$i]);$n=0;continue}
- if($m.success -and ($m.value -eq $n[1])){$f.WriteLine($inf[$i]);$n[0]=$i;continue}
-
- if($m.success){
- $z=[regex]::Match($inf[$n[0]],">\s*")
- echo "从原文本第 $i 行后插入"
- $f.WriteLine($inf[$n[0]].substring(0,$z.index+$z.length)+"退出");
- $f.WriteLine($inf[$i])
- $n=@($i,$m.value);continue}
-
- $f.WriteLine($inf[$i]);$n[0]=$i;continue
- }
-
- $m=[regex]::Match($inf[$i],"$r")
- if($m.success -and ($m.value -ne "退出")){$n=@($i,$m.value)}
- $f.WriteLine($inf[$i])
- }
-
- if($n){
- $z=[regex]::Match($inf[$n[0]],">\s*")
- echo "从原文本末尾插入"
- $f.WriteLine($inf[$n[0]].substring(0,$z.index+$z.length)+"退出");
- }
-
- [io.file]::WriteAllText($pwd.path+"\$otf",$f.ToString(),[text.encoding]::default)
- pause;$f.Dispose()
复制代码
|