我正在尝试在报告中的各行中选择回车。最后,我想删除回车。如果我使用"`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
答案 0 :(得分:1)
gc
以行数组的形式返回文件内容,不包含换行符。
如果你需要跨行匹配,我会建议this answer的方法,例如:
$content = [IO.File]::ReadAllText( $_.FullName )
if( $content -match "(?s)..." ) {
# use values in $matches
}
要从匹配项中删除换行符,请尝试$matches[0] -replace [Environment]::NewLine
或$matches[0] -replace "`r*`n*"
。
答案 1 :(得分:0)
应为`n
我认为你可以使用它:
[string]::Join("",(gc 'C:\temp\test.txt'))
答案 2 :(得分:0)
Powershell使用
`r`n
用于回车换行
get-content
生成一个字符串数组
所以你可以使用
$result = (cat C:\DOWNLOAD\STANDARD\AUDIT*PRM3711* | where { $_ -like '** WARNING ** - ' } )
$result = $result -replace '** WARNING ** - ' , '
r
n** WARNING ** - '
或者,我认为在PS3中你可以通过使用它来使它成为一条长行而不是数组
r
我现在面前没有PS3盒子......