根据预定义值使用PS更改csv中的值

时间:2013-07-23 13:15:02

标签: powershell csv export

你好伙伴Stackoverflowers,

再一次,我遇到了一个问题,我希望可以用PS解决这个问题:

GIS程序将以下形式的行放入csv:

"House 5";9660.7734;1782.7454;0;0;
"House 9";9675.0684;1779.7888;0;0;
"House 8";9675.0684;1779.7888;0;0;
"House 2";9688.3779;1777.323;0;0;
"House 12";9709.5742;1772.3938;0;0;
"House 11";9709.5742;1772.3938;0;0;
"House 12";9734.2217;1771.4075;0;0;
"House 8";9755.9111;1770.4211;0;0;
"House 5";9779.0801;1770.9155;0;0;
"House 7";9779.0801;1770.9155;0;0;
"House 2";9802.7412;1770.9155;0;0;

依旧......

我想保留这种形式,但是在第3个分号(此处为 0 )之后将每行的值更改为每行第1个值( House XX )的值。 )。 House 5 15 House 8 12 8 House 2 3 House 12

此外,列表中的“房屋”不需要更改: House 9 House 11 House 7 。最后,输出文件(同样是csv)应如下所示:

"House 5";9660.7734;1782.7454;15;0;
"House 9";9675.0684;1779.7888;0;0;
"House 8";9675.0684;1779.7888;12;0;
"House 2";9688.3779;1777.323;8;0;
"House 12";9709.5742;1772.3938;3;0;
"House 11";9709.5742;1772.3938;0;0;
"House 12";9734.2217;1771.4075;3;0;
"House 8";9755.9111;1770.4211;12;0;
"House 5";9779.0801;1770.9155;15;0;
"House 7";9779.0801;1770.9155;0;0;
"House 2";9802.7412;1770.9155;8;0;

因此,当我为所有不同的“房屋”(也可以使用列表)提供变更值时,PS脚本能否为我节省手动更改的工作?

提前致谢!

1 个答案:

答案 0 :(得分:1)

所以这是假期,但我觉得要做某人的作业:

Import-Csv yourfile.csv -Delimiter ';' -header 'a','b','c','d','e' | % {$a=$_;switch -regex ($_.a) {.*5 {$a.d=15} .*8 {$a.d=12} "House 12" {$a.d=3} "House 2" {$a.d=8}};$_}

您可以管道导出-csv。