csvの特定の列削除と項番付与1
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
csvの特定の列削除と項番付与1 [2023/04/05 09:56] – 180.46.4.12 | csvの特定の列削除と項番付与1 [2023/04/05 23:13] (現在) – 削除 taatin | ||
---|---|---|---|
行 1: | 行 1: | ||
- | 【要件】 | ||
- | カレントディレクトリ内には複数のCSVファイルがある。 | ||
- | CSVファイルには種類があり、ファイル名に種類ごとに特定の文字列が含まれる。 | ||
- | CSVファイルの種類ごとに、必要な列だけを抽出し、項目番号を追加するスクリプトを作成する。 | ||
- | スクリプトはPowerShellを使用して作成する。 | ||
- | スクリプトはカレントディレクトリ内のすべてのCSVファイルに対して自動的に実行される必要がある。 | ||
- | スクリプトの出力は、元のファイル名に" | ||
- | < | ||
- | # カレントディレクトリ内のすべてのCSVファイルを処理する | ||
- | Get-ChildItem -Filter *.csv | ForEach-Object { | ||
- | if ($_.Name -like " | ||
- | # Type1ファイルを処理する | ||
- | $data = Import-Csv $_.FullName | ||
- | $data = $data | Select-Object column1, column3, column5 | ||
- | $data = $data | ForEach-Object { $_ | Add-Member -MemberType NoteProperty -Name " | ||
- | $data | Export-Csv " | ||
- | } | ||
- | elseif ($_.Name -like " | ||
- | # Type2ファイルを処理する | ||
- | $data = Import-Csv $_.FullName | ||
- | $data = $data | Select-Object column2, column4, column6 | ||
- | $data = $data | ForEach-Object { $_ | Add-Member -MemberType NoteProperty -Name " | ||
- | $data | Export-Csv " | ||
- | } | ||
- | # 他のファイルタイプについても同様に処理を追加する | ||
- | } | ||
- | </ | ||
- | このスクリプトは、Get-ChildItemコマンドレットを使用して、カレントディレクトリ内のすべてのCSVファイルを処理しています。ファイル名に含まれる文字列に基づいて、各ファイルを処理する方法を決定します。上記の例では、Type1とType2の2つのファイルタイプについて処理を行っています。各ファイルに対して、必要な列を選択し、項目番号を追加してから、新しいファイルに保存しています。他のファイルタイプについても同様に処理を追加することができます。新しいファイル名には" | ||
- | |||
- | |||
- | < | ||
- | |||
- | 【要件】 | ||
- | |||
- | ファイル名が「ランダムな文字1_TEST1_RESULT_ランダムな文字2_MMDDYYYY.csv」という形式であるcsvファイルが複数ある。 | ||
- | ファイル名を「YYYYMMDD_TEST1_RESULT_ランダムな文字1_ランダムな文字2.csv」の形式に変更したい。 | ||
- | スクリプトはPowerShellを使用して作成する。 | ||
- | スクリプトはカレントディレクトリ内のすべてのcsvファイルに対して自動的に実行される必要がある。 | ||
- | スクリプトの出力は、元のcsvファイルを上書きしない。 | ||
- | スクリプトの出力は、元のファイル名を変更して、新しいファイルに保存される。 | ||
- | スクリプトを実行する前に、元のcsvファイルのバックアップを作成する必要がある。 | ||
- | 【スクリプトの例】 | ||
- | < | ||
- | # カレントディレクトリ内のすべてのcsvファイルを処理する | ||
- | Get-ChildItem -Filter " | ||
- | # 日付とランダムな文字列を取得する | ||
- | $date = $_.BaseName.Substring($_.BaseName.Length - 8, 8) # ファイル名から日付を取得する | ||
- | $rand1 = $_.Name -replace " | ||
- | $rand2 = $_.Name -replace " | ||
- | |||
- | # 新しいファイル名を作成する | ||
- | $newName = $date + " | ||
- | |||
- | # ファイル名を変更する | ||
- | Rename-Item $_.FullName $newName | ||
- | } | ||
- | </ | ||
- | このスクリプトは、Get-ChildItemコマンドレットを使用して、カレントディレクトリ内のすべてのcsvファイルを処理しています。ファイル名から日付とランダムな文字列1、ランダムな文字列2を取得し、新しいファイル名を作成してから、Rename-Itemコマンドレットを使用してファイル名を変更します。新しいファイル名の形式については、要件に基づいて「YYYYMMDD_TEST1_RESULT_ランダムな文字列1_ランダムな文字列2.csv」としています。 |
csvの特定の列削除と項番付与1.1680688611.txt.gz · 最終更新: 2023/04/05 09:56 by 180.46.4.12