删除PowerShell中的额外空间
我想使用PowerShell删除多余的空格,并用条目之间的单个逗号替换它们,这样我就可以将结果转换为可工作的CSV文件进行进一步分析 这是我的密码删除PowerShell中的额外空间,powershell,scripting,Powershell,Scripting,我想使用PowerShell删除多余的空格,并用条目之间的单个逗号替换它们,这样我就可以将结果转换为可工作的CSV文件进行进一步分析 这是我的密码 Get-Content –path C:\Users\USERNAME\Desktop\results.txt| ForEach-Object {$_ -replace "\s+" " " } | Out-File -filepath C:\Users\USERNAME\Desktop\results.cs
Get-Content –path C:\Users\USERNAME\Desktop\results.txt| ForEach-Object {$_ -replace "\s+" " " } | Out-File -filepath C:\Users\USERNAME\Desktop\results.csv
在文本文件中,初始结果如下所示:
entry entry entry (all separated with 5 spaces)
我希望它看起来像这样:
进入,进入,进入
因此Excel会将它们放在单独的单元格中。您很接近,但您需要用一个“
”、“
代替”
。假设您的文本文件行如下所示。我不知道你是不是想让前导/尾随空间在那里,但没关系
“条目”
Get-Content –path C:\Users\USERNAME\Desktop\results.txt| ForEach-Object {$_.Trim() -replace "\s+" "," } | Out-File -filepath C:\Users\USERNAME\Desktop\results.csv -Encoding ascii
$\u.Trim()-替换“\s+”,“
使用Trim删除外部空格,以防止CSV中出现额外值以防万一。您可以使用Trim
删除字符串开头或结尾的字符(默认情况下,空格)。看一看
如果您想用正则表达式替换字符,可以用另一种方法来完成。也请看一看。只需对我们的文件说一句警告。默认编码是Unicode
((Get Content'entry.txt')-replace('\s{2,5}',',')).Trim()| Out File-Encoding ascii Out.csv
如果需要ascii编码,可以将文件替换为使用默认ascii编码的设置内容。@kamikatze很高兴了解编码。在本例中,我只是按照OP的输出进行操作。而且我的oneliner是错误的。首先是Trim(),然后是-replace,否则后面的空格将使用逗号。我没有解释那件事。我如何对自己投否决票?:)@kamikatze正确更新您的评论并使用反勾号。一旦准备好,只需删除不正确的评论。不管怎样,我的答案中基本上已经包含了这一点。