【问题标题】:Removing line break powershell删除换行符powershell
【发布时间】:2014-03-06 23:33:40
【问题描述】:

我的数据出现换行问题。该数组是由一个输出字符串后跟 -split 组成的。如果您想查看脚本的那部分,请告诉我。

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

输出:

_
itemname_

期望的输出:

itemname

我试过插入:

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

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

【问题讨论】:

    标签: powershell line-breaks


    【解决方案1】:

    好的,我认为这应该可行。我的印象是您希望结果中出现这些下划线。

    $array -replace "`n|`r"
    

    【讨论】:

    • 没有成功,只是在$array前后加了_
    • 这不是你想要的吗?发布一些测试数据,以及您希望输出的样子。
    • 有趣的是,如果你去谷歌“Powershell 删除换行符”,我认为第一个响应是 TechNet 帖子提出了一个非常相似的问题,mjolinor 也在那里放弃了答案。 $array=$array -replace "``n|``r","" 应该做你想做的事,尽管我认为他的原始答案也包括制表符。编辑:呸,双坟应该是单坟。
    • 抱歉,我将_ 放在那里以显示使用的新行。所以我试过$array=$array -replace "``n|``r",""$array=$array -replace '``n|``r',''$array=$array -replace "n|r",""没有成功
    • 再次编辑。你用的是什么版本的PS?
    【解决方案2】:

    默认情况下,“Get-Content”命令的默认分隔符是换行符“\n”。创建一个服装参数,然后执行替换命令。希望这可以帮助。

    Get-ChildItem | Get-Content -Delimiter "~" | foreach { $_ -replace "`r|`n","" }
    

    【讨论】:

      【解决方案3】:

      那么如何在 $item 级别应用 mjolinor 的代码,例如:

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

      虽然我希望您已经得到相同的结果,但您的字符串中嵌入了换行符。

      我自己无法在 $array 中设置相同的条件,也许您可​​以发布该代码。

      这行得通吗?:

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

      【讨论】:

      • $array=$array -replace "``n","" 为我工作(只有一个`)。还需要我检查其他解决方案吗?
      【解决方案4】:
      foreach ($item in $array) {
      "_"+$item.Trim()+"_"
      }
      

      应该做你想做的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-05
        • 2016-02-26
        • 1970-01-01
        • 2017-10-06
        • 2023-01-18
        相关资源
        最近更新 更多