2

我正在尝试在报告的各个行中选择回车。最后,我想删除回车。如果我使用"`n", "`r", "\n", "\r",我不会得到任何结果。当我在 Vi 中访问报告时,我可以看到回车 ( ^L)。所以我现在不知道该怎么做,但把我的头发拉出来。

ls C:\DOWNLOAD\STANDARD\AUDIT*PRM3711* | %{ gc $_ | Select-String -Pattern '\** WARNING \** -  ' }

结果

** WARNING ** -  SAMPLE REPORT
** WARNING ** -  SAMPLE REPORT
** WARNING ** -  SAMPLE REPORT
** WARNING ** -  SAMPLE REPORT
4

3 回答 3

1

gc将文件的内容作为行数组返回,其中不包含换行符。

如果您需要跨行匹配,我会建议此答案的方法,例如:

$content = [IO.File]::ReadAllText( $_.FullName )
if( $content -match "(?s)..." ) {
  # use values in $matches
}

要从匹配项中删除换行符,请尝试$matches[0] -replace [Environment]::NewLine$matches[0] -replace "`r*`n*"

于 2012-12-06T14:30:54.273 回答
0

在powershell回车+换行应该是`n

我认为你可以使用这个:

[string]::Join("",(gc 'C:\temp\test.txt'))
于 2012-11-30T19:59:46.707 回答
0

Powershell 使用

`r`n 

用于回车换行

get-content制作一个字符串数组

所以你可以使用 $result = (cat C:\DOWNLOAD\STANDARD\AUDIT*PRM3711* | where { $_ -like '** WARNING ** - ' } ) $result = $result -replace '** WARNING ** - ' , 'rn** WARNING ** - '

或者,我认为在 PS3 中,您可以使用 get-content -delimiter `0

我现在没有PS3盒子在我面前......

于 2014-07-07T19:06:46.527 回答