質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

Q&A

解決済

2回答

1302閲覧

PowerShellでcsvのn行目を削除したい

nuh

総合スコア15

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

0グッド

0クリップ

投稿2023/02/27 01:47

編集2023/02/27 01:52

実現したいこと

PowerShellでcsvオブジェクト(PSCustomObject)のn行目を削除したいです。

該当のソースコード

PowerShell

1# csvのヘッダー 2$csv_header = @("key", "value") 3 4# csv 5$csv = @" 6aaa,bbb 7ccc,ddd 8eee,fff 9ggg,hhh 10"@ | ConvertFrom-Csv -Header $csv_header 11 12# n行目を削除する設定 13$remove_index = 2

この場合

key value --- ----- aaa bbb ccc ddd ggg hhh

となるようにしたいです。

試したこと

PowerShell

1$csv = $csv[0..($remove_index - 1)] + $csv[($remove_index + 1)..$csv.count]

これで一応目的の動作はできるのですが冗長でわかりづらいです。
また$csv = $csv~となっているので
$csvが大きかったり、削除したい行が多い場合処理が無駄に重くなりそうです。
もっと簡単にできる方法はないでしょうか?
あと$csvのメソッドを見てもそれらしいものは見つかりませんでした。

補足情報(FW/ツールのバージョンなど)

Name Value


PSVersion 7.3.3
PSEdition Core
GitCommitId 7.3.3
OS Microsoft Windows 10.0.19045
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

$csv = $csv | Select-Object -Index ((0..($csv.Count-1)) -ne $remove_index)

とかどうですか?

投稿2023/02/27 02:03

okuka

総合スコア54

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nuh

2023/02/27 03:01

okukaさんのを参考に $remove_index = @(1, 2) $csv=$csv[(0..($csv.Count - 1) | ? { $_ -notin $remove_index })] こうしたら複数行の削除にも対応できて、処理量も減らせそうですね ありがとうございました。
guest

0

複数の削除に対応していないので削除します。

投稿2023/02/27 02:13

編集2023/02/27 06:38
ccc-

総合スコア342

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問