我试图解析文本文件并匹配字符集,然后在该行的末尾添加回车符以增加一些间距。我尝试了许多不同的方法来执行此操作,但没有成功。下面的代码示例导致匹配并仅返回具有匹配项的行,并且不添加回车符。

[string[]]$arrayFromFile = Get-Content -Path "C:\abc.txt"
$Return = $arrayFromFile -match 'ghijk' -split "`r"
$Return | Out-File "C:\abc.txt"
结果:
  • ghij
  • ghmno
  • ghabc

  • 我想做的是下面。查找结果“gh”,并在该行的末尾添加回车符,同时将所有内容保留在文本文件中。
    来自:
  • abcdefmno
  • abcdefpqr
  • ghij
  • abcdef
  • ghmno
  • abcdef
  • abcdef
  • ghabc
  • mnop

  • 收件人:
  • abcdefmno
  • abcdefpqr
  • ghij
  • abcdef
  • ghmno
  • abcdef
  • abcdef
  • ghabc
  • mnop

  • 谢谢你的帮助!

    最佳答案

    您可以在单个管道中实现此目的:

    Get-Content -Path "C:\abc.txt" | foreach {
       $_
       if ($_ -like "gh*") {
           "" # additional empty line
       }
    } | Out-File "C:\abc.txt"
    
    无需插入任何换行符或回车符,而是输出空行(空字符串)就足够了。换行符将由Out-File自动处理。
    除了-like "gh*"(以满足示例的要求),您当然可以执行-match <your regex>或任何您喜欢的操作。

    关于arrays - Powershell搜索文本文件以进行匹配,并在行尾添加回车符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64719258/

    10-16 12:47