每次替换匹配都替换Powershell中的文本

时间:2020-04-27 21:00:26

标签: powershell powershell-3.0

我看过this question,它与我需要做的很接近,但是我需要替换的文字不一致。

我需要将"`r`n替换为",但仅将相邻两行中的第一行

示例:(完整文件为5万行,最多500个字符)

    ID,Name,LinkedRecords
    54429,Abe,
    54247,Jonathan,"
    63460|63461"
    54249,Teresa,
    54418,Cody,
    58046,Joseph,
    58243,David,
    ,Barry,"
    74330"
    C8876,Simon,
    X_10934,David,

应该成为

    ID,Name,LinkedRecords
    54429,Abe,
    54247,Jonathan,"63460|63461"
    54249,Teresa,
    54418,Cody,
    58046,Joseph,
    58243,David,
    ,Barry,"74330"
    C8876,Simon,
    X_10934,David,

我看到this可能会有用,但是我很难让命令按需工作

1 个答案:

答案 0 :(得分:1)

如果`r`n字符是文字​​字符,则可以执行以下操作:

[System.IO.File]::ReadAllText('c:\path\file.txt') -replace '(?<=,")`r`n\r?\n' |
    Set-Content c:\path\file.txt

如果`r`n是实际的回车符和换行符,则可以执行以下操作:

[System.IO.File]::ReadAllText('c:\path\file.txt') -replace '(?<=,")\r\n' | 
    Set-Content c:\path\file.txt

请注意,如果内存成为问题,则可能需要采用其他方法。

相关问题