PowerShell搜索和替换yaml

PowerShell搜索和替换yaml,powershell,Powershell,我正在寻找解决这个问题的方法 假设我们有两个文件,一个是yaml格式的,并且有特定的占位符,作为前成员的名称。请注意,由于文件格式为yaml,因此占位符前会有一定数量的空格 然后,我们有一个单独的文件,其中包含此格式的成员的实际名称–member_name:abc xyz。此文件没有其他空格 我需要的是,在不干扰文件结构的情况下,用第二个文件中的相应值替换yaml文件的内容占位符 与yaml一样,执行后的文件应具有成员名称:abc xyz,以及原始文件中的空格 这必须进入循环,因为我在文件A中有

我正在寻找解决这个问题的方法

假设我们有两个文件,一个是yaml格式的,并且有特定的占位符,作为前成员的名称。请注意,由于文件格式为yaml,因此占位符前会有一定数量的空格

然后,我们有一个单独的文件,其中包含此格式的成员的实际名称–member_name:abc xyz。此文件没有其他空格

我需要的是,在不干扰文件结构的情况下,用第二个文件中的相应值替换yaml文件的内容占位符

与yaml一样,执行后的文件应具有成员名称:abc xyz,以及原始文件中的空格

这必须进入循环,因为我在文件A中有多个占位符,在第二个文件中有相应的值

如果我不清楚,请告诉我

这就是我尝试过的

$realmember = GC "\Path\to\file\realMember.txt"
$yamlfile = GC "\Path\to\file\yamlFile"

foreach($line in $yamlfile){

    $script:found += @($line | select-string -Pattern '(*)$' | %{$_ -replace '(\s*','*'} | %{$_ -replace ')','*'})
}

for($i = 0; $i -lt ($realMember.Count); $i++){

    if($realMember[$i] -like $found[$i].Trim()){

        $secrets = $realMember[$i]

        $file = $file -replace "[^\s*].*[^\s*]<*>$","$realMember[$i]" #| Where-Object {$_ -match "$realMember[$i]"}

    }

}

$file
但这将以以下格式打印每个字段中的所有值。我需要找出是否有一种方法可以在替换正则表达式时包含变量,或者有其他更好的方法来实现这一点

MemberData:
  member_id: 01
  member_name_1: abc def member_name_2: ghi jkl member_name_3: mno pqr member_name_4: stu vwx[x]
  member_id: 02
  member_name_1: abc def member_name_2: ghi jkl member_name_3: mno pqr member_name_4: stu vwx[x]
  new_members:
    member_id: 003
    member_name_1: abc def member_name_2: ghi jkl member_name_3: mno pqr member_name_4: stu vwx[x]
    member_id: 004
    member_name_1: abc def member_name_2: ghi jkl member_name_3: mno pqr member_name_4: stu vwx[x]
===========================

realMember.txt内容

===========================

纱线含量


任何寻找解决方案的人都可以在这里看到-

您当前尝试的错误在哪里?您好,我已经给出了我尝试过的代码片段以及相关问题。没有任何错误,但它正在用一行中的所有标记替换占位符。我在这里寻找的是,它将取代占位符与确切的令牌匹配只。请帮忙
member_name_1: abc def
member_name_2: ghi jkl
member_name_3: mno pqr
member_name_4: stu vwx
MemberData:
  member_id: 01
  (member_name_1)
  member_id: 02
  (member_name_2)
  new_members:
   member_id: 003
   (member_name_3)
   member_id: 004
   (member_name_4)