用powershell替换csv文件中的字符串

时间:2015-08-13 13:15:14

标签: powershell replace

我需要为csv文件中的某些列放置System.Object []。我尝试了3种不同的方法,但没有一种方法有效。当该对象为空或其他东西时,由powershell输入System.Object []。

$file = "c:\output.csv"

(gc $file) -replace "'system.object[]'", ""
[io.file]::readalltext($file).replace("'system.object[]'","")
(Get-Content $file | ForEach-Object { $_ -replace "system.object[]", "" } ) | Set-Content $file

3 个答案:

答案 0 :(得分:1)

我在输出中包含System.Object []的变量中添加了以下代码。而它似乎正在发挥作用。现在我不必在文件级别进行替换。

"Access Code" = (@($AccessCode) | Out-String).Trim()

答案 1 :(得分:1)

护腕和圆点([,] ,.)需要全部转义。再删除双引号,只保留单引号。还要考虑使用creplace,以防你想要工作区不敏感。所以命令看起来像这样:

(gc $file) -replace 'system\.object\[\]', ''

如果您想将所有内容写入新文件:

(gc $file) -replace 'system\.object\[\]', ''|out-file "test2.txt" -encoding ASCII

答案 2 :(得分:0)

只需使用逃脱角色

(gc $file) -replace 'system.object\[\]', ""
  

角色' ['和']'用于正则表达式模式。你必须使用Escape   人物' \'告诉Powershell这是一个常规的字符