CSVとして変更できないシステムから自動レポートを受け取っています。PowerShellを使用してCSVを複数のファイルに分割し、必要な特定のデータを解析しています。CSVには、データを含まない列、1つの値、またはCSVファイル自体でコンマ区切りされた複数の値が含まれます。
例(明確にするために更新):
"Group","Members"
"Event","362403"
"Risk","324542, 340668, 292196"
"Approval","AA-334454, 344366, 323570, 322827, 360225, 358850, 345935"
"ITS","345935, 358850"
"Services",""
データに次のように1行に1つのエントリを持たせたい(明確にするために更新):
"Group","Members"
"Event","362403"
"Risk","324542"
"Risk","340668"
"Risk","292196"
#etc.
データを分割しようとしましたが、最後に不明な数の列が表示されます。
foreach
ループを試しましたが、正しく処理できないようです(以下の擬似コード):
Import-CSV $Groups
ForEach ($line in $Groups){
If($_.'Members'.count -gt 1, add-content "$_.Group,$_.Members[2]",)}
私はあなたが提供できるどんな助けにも感謝します。私はすべてのstackexchangeの投稿を検索し、Googleを使用しましたが、この正確な問題に対処するものを見つけることができませんでした。
Import-Csv .\input.csv | ForEach-Object {
ForEach ($Member in ($_.Members -Split ',')) {
[PSCustomObject]@{Group = $_.Group; Member = $Member.Trim()}
}
} | Export-Csv .\output.csv -NoTypeInformation
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加