所以我有一个看起来像这样的文本文件:
Members : {USER\member1, USER\member2, US
ER\member3, USER\member4, USER
\member5, USER\member6}
而且我想删除
USER\
。以下代码将其删除,但在将其用换行符分隔时将其删除,例如,当一行上的US
和另一行上的ER\
时,将其删除。Foreach-Object { %{$_.Replace('USER\', '') }
在其中放置
`n or `r
不起作用。任何帮助表示赞赏。 最佳答案
试试这个:
PS > ((Get-Content .\t.txt) | % { $_.Trim() }) -join "" -replace "USER\\"
Members : {member1, member2, member3, member4, member5, member6}
如果文本位于字符串数组中,请使用您的变量切换出
(Get-Content .\t.txt)
。如果文本在字符串(不是数组)变量中,请使用:($MYSTRINGVAR.Split("`r`n") | % { $_.Trim() }) -join "" -replace "USER\\"
编辑只需修改“成员”部分:
$text = (Get-Content .\input.txt) -join "`r`n"
($text | Select-String '(?s)(?<=Members : \{)(.+?)(?=\})' -AllMatches).Matches | % {
$text = $text.Replace($_.Value, ($_.Value -split "`r`n" | % { $_.Trim() }) -join "" -replace "USER\\")
}
$text | Set-Content output.txt
关于powershell - Powershell:查找并替换由换行符分隔的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14840632/