public/Invoke-Sed.ps1

function Invoke-Sed {
    <#
    .SYNOPSIS
        Search/Replace matching text pattern within specified files
    .DESCRIPTION
        Search/Replace matching text pattern within specified files
    .PARAMETER FilePath
        Path where files reside
    .PARAMETER Find
        Text pattern to search for
    .PARAMETER ReplaceWith
        Text to replace the matching pattern instances
    .PARAMETER Filter
        File name/extension pattern. Default is *.* (all files)
    .EXAMPLE
        Invoke-Sed -FilePath "c:\mydocs" -Filter "*.txt" -Find "Contoso" -ReplaceWith "Fabrikam"
    .LINK
        https://github.com/Skatterbrainz/helium/blob/master/docs/Invoke-Sed.md
    #>

    [CmdletBinding()]
    param (
        [parameter(Mandatory)][string]$FilePath,
        [parameter(Mandatory)][string]$Find,
        [parameter()][string]$Filter = "*.*",
        [parameter()][string]$ReplaceWith = ""
    )
    if (Test-Path $FilePath) {
        (Get-Content -Path $FilePath).Replace($Find, $ReplaceWith) | Set-Content -Path $FilePath
    } else {
        Write-Warning "File not found: $FilePath"
    }
}