返回列表 发帖

[问题求助] powershell修改满足条件的行

下面代码注释中有功能的描述, 试过gpt, 多轮下来都没有成功, 我想尽量用正则实现
$s = @'
★ 红五星
AAA 中
AAA 国
AAA 日
BBBBBBBBBBBB
AAA 日
AAA 本
AAA 美
AAA 国
'@
<#
用powershell代码实现如下功能:
将★开头的行下面的,且连续的, 以AAA开头的行,复制一份, 放到★开头的行的上方
然后将这些连续的,以AAA开头的行之前, 添加一行文本, 文本是XXX
接着将这些连续的,以AAA开头的行之后, 添加一行文本, 文本是VVV
最后的结果如下:
AAA 中
AAA 国
AAA 日
★ 红五星
XXX
AAA 中
AAA 国
AAA 日
VVV
BBBBBBBBBBBB
AAA 日
AAA 本
AAA 美
AAA 国
#>COPY

回复 2# idwma

稍微改了一下,  把不以AAA开头的行之前的N行进行处理, N行中可能有一行或多行的空行, 还有办法判定吗?
$s = @'
★ 红五星
AAA 中
AAA 国
AAA 日
BBBBBBBBBBBB
AAA 日
AAA 本
AAA 美
AAA 国
'@
<#
用powershell代码实现如下功能:
将★开头的行下面的,不以AAA开头的行之前的N行,复制一份, 放到★开头的行的上方
然后将这些行之前, 添加一行文本, 文本是XXX
接着将这些行之后, 添加一行文本, 文本是VVV
最后的结果如下:
AAA 中
AAA 国
AAA 日
★ 红五星
XXX
AAA 中
AAA 国
AAA 日
VVV
BBBBBBBBBBBB
AAA 日
AAA 本
AAA 美
AAA 国
#>COPY

TOP

回复 4# idwma

试了一下, 不行, AAA行不是连续的, 中间空行的, 仍算是连的

TOP

回复 6# idwma


    多谢,
直接在powershell可以
我在powershell ise中测试不行, 实际读取文本时也不行, 怪了

TOP

返回列表