修剪csv导入中的对象内容

时间:2013-06-19 00:06:49

标签: powershell

我需要对从csv导入对象中提取的每个值运行trim方法。没有尝试类似下面的东西,但对我来说,我不想在传递给函数的每个变量的末尾定义一个trim命令。

$csvobj = "c:\somestuff.csv"

foreach ($csvitem in $csvobj) {
$csvitem.value1.trim()
$csvitem.value2.trim()
}

先谢谢,SS

3 个答案:

答案 0 :(得分:8)

这将修剪csv文件中的所有值,并将结果分配给$ csv。

$csv = Import-Csv c:\somestuff.csv | Foreach-Object {
   $_.PSObject.Properties | Foreach-Object {$_.Value = $_.Value.Trim()}  
}

答案 1 :(得分:1)

你可以试试这个:

$a = import-csv "c:\somestuff.csv"
$a | % {$b=$_;$_.psobject.Properties | % {$c=$_.name ;$b."$c"=($b."$c").trim()}}

首先:我将所有行导入$a

第二:在第一个循环中,我读取每个对象(每个CSV行),然后对于第二个循环中的每个对象,我读取每个属性,然后我可以修剪每个var。

答案 2 :(得分:1)

以上是对上述答案的略微修改。这将从当前文件夹中的所有.csv文件中删除所有前导/尾随空格。希望它有所帮助!

gci -filter *.csv | foreach {
    echo $_.NAME
    $csv = Import-Csv $_.NAME
    $csv | Foreach-Object {   
        $_.PSObject.Properties | Foreach-Object { $_.Value = $_.Value.Trim() } 
    }
    $csv | Export-Csv $_.NAME -NoTypeInformation 
}