【发布时间】:2017-08-10 21:07:50
【问题描述】:
我有一个 CSV,它偶尔会使用工作中的用户 ID 手动更新。我有在列表上进行比较的代码,但某些 ID 后面有空格,因此它们不匹配。
如何对此 CSV 进行数据完整性检查以确保仅列出 ID 名称?换句话说,删除所有空格。
【问题讨论】:
-
" string ".trim()。删除所有前导和尾随空格。
标签: powershell csv spaces
我有一个 CSV,它偶尔会使用工作中的用户 ID 手动更新。我有在列表上进行比较的代码,但某些 ID 后面有空格,因此它们不匹配。
如何对此 CSV 进行数据完整性检查以确保仅列出 ID 名称?换句话说,删除所有空格。
【问题讨论】:
" string ".trim()。删除所有前导和尾随空格。
标签: powershell csv spaces
.trim() 字符串方法将删除开头或结尾的空格。还有一个 .trimend() 方法只用于尾随。
$TrimmedCSV = Import-CSV C:\example.csv | ForEach-Object {$_.ID = $_.ID.Trim(); $_}
$TrimmedCSV | Export-CSV C:\example.csv -NoTypeInformation
正如马特提到的,还有.trimstart()。除了空格之外,您还可以修剪字符。例如,.trim('a')。
【讨论】:
$TrimmedCSV[1].id.length 1 $unTrimmedCSV[1].id.length 2
你可以很容易地去除空格后进行比较:
(" SAM 500 " -replace ' ', '') -eq "SAM500"
或者,没有看到你的代码可能更接近:
($User -replace ' ','') -eq $oldId
或者,(如前所述)如果您需要保留 一些 个空格,但要确保删除前导和尾随空格,请使用 .Trim()
$NewName.Trim() -eq $prviousName
或者如果你想获得一点创意,你也可以使用 -Match 和正则表达式:
$newName -match "\s+(\b$oldName\b)+\s+"
【讨论】: