Replace the first occurence of a string in a file

后端 未结 2 1541
孤街浪徒
孤街浪徒 2021-01-21 04:24

In a PowerShell script, to replace the first occurrence of a string in a file I came with the code below, which keeps track in a variable whether the replacement was made.

相关标签:
2条回答
  • 2021-01-21 04:30

    If it is xml, handle it as xml:

    $xml = [xml](gc $original_file)
    $xml.SelectSingleNode("//version")."#text" = "6.1.26.p1-SNAPSHOT"
    $xml.Save($destination_file)
    

    SelectSingleNode will select the first version element. Then replace it's inner content and save to the new file. Add a check for the inner content being 6.1.26.p1 if you want to specifically replace only that.

    0 讨论(0)
  • 2021-01-21 04:42

    So let's say that you had a file named Test.txt and it's contents were:

    one
    two
    four
    four
    five
    six
    seven
    eight
    nine
    ten
    

    And you want to change just the first instance of four to be three instead:

    $re = [regex]'four'
    $re.Replace([string]::Join("`n", (gc C:\Path\To\test.txt)), 'three', 1)
    
    0 讨论(0)
提交回复
热议问题