0

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 ) で指定された値に変更します。適用される値は、ハウス 5​​では15ハウス 8では12ハウス 2では8ハウス 12では3です。

また、リストには変更する必要のない「家」があります:家 9家 11家 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 スクリプトを使用して手動で変更する作業を省くことができますか?

前もって感謝します!

4

1 に答える 1

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}};$_}

export-csv にパイプできます。

于 2013-07-23T13:42:50.293 に答える