代码之家  ›  专栏  ›  技术社区  ›  samsux

powershell trim-删除字符串后的所有字符

  •  7
  • samsux  · 技术社区  · 11 年前

    删除字符串后的所有内容的命令是什么。 我在一个文本文件中有信息,但字符串后面有1000行我不想要的文本。我如何删除字符串之后的所有内容(包括字符串)。

    这就是我所拥有的——不工作。非常感谢。

    $file = get-item "C:\Temp\test.txt"
    
    (Get-Content $file) | ForEach {$_.TrimEnd("\test.something\")} | Set-Content $file
    
    2 回复  |  直到 11 年前
        1
  •  6
  •   LinkBerest    11 年前

    为什么删除之后的所有内容?保持一切正常(为了可读性,我将使用两行代码,但您可以很容易地组合成一个命令):

    $text = ( Get-Content test.txt | Out-String ).Trim() 
    #Note V3 can just use Get-Content test.txt -raw
    $text.Substring(0,$text.IndexOf('\test.something\')) | Set-Content file2.txt
    

    此外,您可能不需要修剪,但您使用的是添加的修剪端,以备以后添加。)

        2
  •  5
  •   mjolinor    11 年前

    使用 -replace

    (Get-Content $file -Raw) -replace '(?s)\\test\.something\\.+' | Set-Content $file