前スレ
PowerShell -Part 5
https://mevius.5ch.net/test/read.cgi/tech/1615994992/
次スレは>>980が立ててね!!
探検
PowerShell -Part 6
■ このスレッドは過去ログ倉庫に格納されています
2022/02/13(日) 18:36:12.07ID:LaQ04ZoE
338デフォルトの名無しさん
2022/05/29(日) 15:56:20.58ID:2VGP7oaH bash -c "paste -d , a.csv b.csv"
339デフォルトの名無しさん
2022/05/29(日) 18:24:56.01ID:maoDzYC5 カラムの順序指定もしたいみたいだから、cutとかでもう1処理いるね。
PowerShellだと
(>>338) | ConvertFrom-Csv | select id,name,address,phone,gender | ConvertTo-Csv
ただしConvertFrom-Csv・ConvertTo-Csvは
元データを正確に再現する必要がある場合には難あり。
(Trim()が掛かるとかダブルクォーテーションで括られるとか。)
PowerShellだと
(>>338) | ConvertFrom-Csv | select id,name,address,phone,gender | ConvertTo-Csv
ただしConvertFrom-Csv・ConvertTo-Csvは
元データを正確に再現する必要がある場合には難あり。
(Trim()が掛かるとかダブルクォーテーションで括られるとか。)
340デフォルトの名無しさん
2022/05/29(日) 18:27:45.99ID:maoDzYC5 paste使えない環境とか、Trim()掛かると困るとか、PowerShellだけで実装したい場合
function Merge-Csv {
Param (
[Object[]] $InputObject,
[string[]] $Header,
[char] $Delimiter = ','
)
$tbl = [Data.DataTable]::new()
# 1行目をカラム名として使用
foreach ($csv in $InputObject) {
$tbl.Columns.AddRange(($csv[0].Split($Delimiter)))
}
# 各CSVの同じ行同士をDataRowにする。
for ($lineIdx = 0; $lineIdx -lt $InputObject[0].Length; $lineIdx++) {
$rowData = @(
foreach ($csv in $InputObject) {
$csv[$lineIdx].Split($Delimiter)
}
)
$null= $tbl.Rows.Add($rowData)
}
# カラム順序を指定順序に変更する。
for ($order = 0; $order -lt $Header.Length; $order++) {
$tbl.Columns[$Header[$order]].SetOrdinal($order)
}
# CSV形式で出力
foreach ($row in $tbl.Rows) {
$row.ItemArray -join $Delimiter
}
}
function Merge-Csv {
Param (
[Object[]] $InputObject,
[string[]] $Header,
[char] $Delimiter = ','
)
$tbl = [Data.DataTable]::new()
# 1行目をカラム名として使用
foreach ($csv in $InputObject) {
$tbl.Columns.AddRange(($csv[0].Split($Delimiter)))
}
# 各CSVの同じ行同士をDataRowにする。
for ($lineIdx = 0; $lineIdx -lt $InputObject[0].Length; $lineIdx++) {
$rowData = @(
foreach ($csv in $InputObject) {
$csv[$lineIdx].Split($Delimiter)
}
)
$null= $tbl.Rows.Add($rowData)
}
# カラム順序を指定順序に変更する。
for ($order = 0; $order -lt $Header.Length; $order++) {
$tbl.Columns[$Header[$order]].SetOrdinal($order)
}
# CSV形式で出力
foreach ($row in $tbl.Rows) {
$row.ItemArray -join $Delimiter
}
}
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 【無職の男(31)】女子小学生に次々触る 下半身を露出した状態で 公然わいせつ、不同意わいせつ疑い 千葉県警 [nita★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【実況】博衣こよりのえちえち朝活🧪
- 朝からハイエースでカップラーメン食べてるドカタ
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwww
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- 冬季賞与報告スレ [577451214]
- アホが使うワード 解像度 言語化 あと一つは?
