在powershell中的文件的特定行的末尾添加一些数据

时间:2014-07-03 17:23:58

标签: powershell

我需要在文件中找到特定的行并在行尾添加一些数据,如下所示:

function AddSomeData($file, $key, $value) 
{
    $content = Get-Content $file
    if ($content -match "I work very") 
    {
        $content- add at the end $value
        Set-Content $file     
    }
}

AddSomeData "settings.conf" "I work very" " hard"

结果 - 更改了行的文件:我非常努力。怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式在每行上搜索和替换,然后输出到新文件。例如:

get-content "settings.conf" | foreach-object {
  $_ -replace 'I work very$','$0 hard'
} | out-file "settings2.conf"

答案 1 :(得分:1)

这就是我如何做到的:

Function AddSomeData(){
    param(
        [Parameter(Mandatory=$true)][String]$file,
        [Parameter(Mandatory=$true)][String]$key,
        [Parameter(Mandatory=$true)][String]$value
    )
    $content = get-content $file | ForEach-Object { 
        IF($_ -eq $key){"$key $value"} 
        ELSE {$_}
    }
    $content | Set-Content $file
}

然后只需调用函数:

AddSomeData settings.conf 'I work very' 'hard'