Search code examples
powershellcontrol-characters

Find/replace string with carriage return and line feed in PowerShell


Is there a way to have PowerShell find and replace a string (for example ~}}|{{E) with a carriage return and line feed (\r\nE)?

For example:

$filenames = @("E:\blergfest.csv")
foreach ($file in $filenames) {
    $outfile = "$file" + ".out"

    Get-Content $file | Foreach-object {
        $_ -replace '\~}}|{{E', '\r\nE' `
            -replace '\|\r\n', '\r\n'
    } | Set-Content $outfile
}

Solution

  • How about this:

    $filenames = @("E:\blergfest.csv")
    foreach ($file in $filenames) {
        $outfile = "$file" + ".out"
    
        Get-Content $file | Foreach-object {
            $_ -replace '\~}}|{{E', "`r`nE" `
                -replace '\|\r\n', "`r`n"
        } | Set-Content $outfile
    }