批处理之家's Archiver

5i365 发表于 2022-3-29 19:36

PowerShell将多行文本中的前N行和后N行中的符合条件的行过滤掉

下面的代码, 可以把所有包含:和-的行过滤掉, 而我需要过[size=12px]只[/size][size=12px]滤掉前五行和后五行中包含:[/size][size=12px]和-的行, 请教路过大侠, 有什么高招, 提前感谢![/size][size=12px]
[/size][code]@"
胡歌 - 逍遥叹
作词:陈宇任
作曲陈宇任
编曲:屠颖
岁月难得沉默
秋风厌倦漂泊
夕阳赖着不走
挂在墙头舍不得我
昔日伊人耳边话
已和潮声向东流
再回首
往事也随枫叶一片片落
爱已走到尽头
恨也放弃承诺
命运自认-幽默
想法太多由不得我
:壮志凌云几分酬
知己难逢几人留
再回首却闻:笑传醉梦中:
笑叹词穷-古痴今狂终成空
刀钝刃乏恩断义绝梦方破
路荒已叹饱览足迹:没人懂
多年望眼欲穿过
红尘滚滚我没看透
自嘲墨尽千情万怨英杰愁
曲终人散发:-花鬓白红颜殁烛残未觉与日争辉徒消瘦:
当泪干血隐狂涌
:白雪纷飞都成红
"@ -split '(?<!\r)\n' |
?{
        $_ -notmatch ":|-"
}[/code]

idwma 发表于 2022-3-29 21:12

[code]$a=@"
胡歌 - 逍遥叹
作词:陈宇任
作曲陈宇任
编曲:屠颖
岁月难得沉默
秋风厌倦漂泊
夕阳赖着不走
挂在墙头舍不得我
昔日伊人耳边话
已和潮声向东流
再回首
往事也随枫叶一片片落
爱已走到尽头
恨也放弃承诺
命运自认-幽默
想法太多由不得我
:壮志凌云几分酬
知己难逢几人留
再回首却闻:笑传醉梦中:
笑叹词穷-古痴今狂终成空
刀钝刃乏恩断义绝梦方破
路荒已叹饱览足迹:没人懂
多年望眼欲穿过
红尘滚滚我没看透
自嘲墨尽千情万怨英杰愁
曲终人散发:-花鬓白红颜殁烛残未觉与日争辉徒消瘦:
当泪干血隐狂涌
:白雪纷飞都成红
"@ -split '(?<!\r)\n'
$a|
?{
        if(++$i -lt 4 -or $i -gt $a.count-4){$_ -notmatch ":|-"}else{1}
}[/code]

w6xb 发表于 2022-3-30 01:00

-replace "[^\r\n]*?[:-][^\r\n]*\r\n", ""

5i365 发表于 2022-3-30 06:34

[i=s] 本帖最后由 5i365 于 2022-3-30 08:30 编辑 [/i]

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=253448&ptid=62153]2#[/url] [i]idwma[/i] [/b]


   感谢大侠帮忙, 前5行中 ,下面这行没有过滤掉
编曲:屠颖

5i365 发表于 2022-3-30 06:37

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=253460&ptid=62153]3#[/url] [i]w6xb[/i] [/b]

感谢大侠帮助, 请问把这行放在哪里? 我尝试放在-split后, 或直接使用 这行 ,都没有输出

5i365 发表于 2022-3-30 18:48

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=253448&ptid=62153]2#[/url] [i]idwma[/i] [/b]


   把第一个4改成5就行了, 但是 为什么是5, 后面那个为什么4, 还有下面两句, 都是第一次看到, 看不懂, 要是能找个解释的文章就好了  
++$i

else { 1 }

idwma 发表于 2022-3-30 22:46

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=253507&ptid=62153]6#[/url] [i]5i365[/i] [/b]


后面那个也可以是5或别的数,随便改
++$i 先加1再判断
$i++ 判断完再加1[code]
else { $true }
[int]$true
[int]$false[/code]其实文档里有解释的

5i365 发表于 2022-3-30 23:07

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=253520&ptid=62153]7#[/url] [i]idwma[/i] [/b]


   多谢大侠指教, 感觉以后肯定会用到, 先mark

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.