移除PowerShell中的换行符

10

我在处理数据时,遇到了换行符的问题。这个数组是通过一个 out-string 命令和 -split 参数组合生成的。如果你想查看脚本中相关的部分,请告诉我。

foreach ($item in $array) {
"_"+$item+"_"
}

输出:

_
itemname_

期望输出:

itemname

我尝试插入:

$item.replace('`','')

没有任何改变。有什么想法吗?

4个回答

10

好的,我认为这应该可以。我以为你想在结果中保留那些下划线。

$array -replace "`n|`r"

没有成功,这只是在 $array 前后添加了 _ - snoop
这不是你想要的吗?发布一些测试数据,以及你想要输出的具体样式。 - mjolinor
再次编辑。你使用的PS版本是什么? - mjolinor
PS v2,看起来我的数组中既有n又有r。我无法让`显示出来。 - snoop
那么,这就是你的答案。 - mjolinor
显示剩余6条评论

2
默认情况下,“Get-Content”命令的默认分隔符为换行符“\n”。创建一个自定义参数,然后执行替换命令。希望这可以帮助您。
Get-ChildItem | Get-Content -Delimiter "~" | foreach { $_ -replace "`r|`n","" }

0
foreach ($item in $array) {
"_"+$item.Trim()+"_"
}

应该可以满足你的需求。


0

那么将mjolinor的代码应用于$item级别怎么样,例如:

foreach ($item in $array) {
  $item -replace '^|$','_'
}

尽管我期望你已经得到了相同的结果,但是在你的字符串中嵌入了换行符。

我自己无法设置与$array中相同的条件,也许你可以发布那段代码。

这个有效吗?:

foreach ($item in $array) {
  $item.Trim() -replace '^|$','_'
}

$array=$array -replace "``n",""对我有效(使用单个)。您还希望我检查其他解决方案吗? - snoop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接