如果行包含字符串,则将内容添加到同一行

时间:2016-11-23 12:37:08

标签: powershell

假设我有$key$string用于匹配,$file要添加。 如果$key中的某一行包含 $string,请将$key="b"添加到该行的末尾。 例如: $string="z" $file a b c 包含:

$file

a b z c 包含:

$file

如何在PowerShell中以最简单的方式完成? 注意! Windows是一个实际文件,而不是程序中的某个数组

2 个答案:

答案 0 :(得分:0)

您可能必须迭代每一行并检查该行是否包含密钥:

$newContent = Get-Content $file | Foreach {
    if ($_ -like "*$key*")
    {
        "$_ $string"
    }
    else
    {
        $_
    }
} 
$newContent | Set-Content $file

答案 1 :(得分:0)

$file="C:\temp\report.csv"
$Newfile="C:\temp\report2.csv"
$KeyToSearch="b"
$StringToAdd="z"

Get-Content $file | 
%{if ($_ -like "*$KeyToSearch*") {"$_ $StringToAdd" } else {$_}} | 
out-file -FilePath $Newfile -Append