カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

CSVにダブルクォーテーションを簡単に付けるには

CSVファイルで各カラムがダブルクォーテーションで括られていないことがたまにあります。
そんな時、皆さんどうしていますか?
私はテキストエディタでカンマ「,」を「”,”」に置換し、行の先頭と末尾にダブルクォーテーションを付ける・・・ということをいちいちやっていました。
しかし、PowerShellのコマンドを使えば、一発で簡単にダブルクォーテーションを付けることが出来るようなのです。

コマンド例はこちら

Import-Csv -Path "C:\source.csv" -Encoding Default | Export-csv -Path "C:\destination.csv" -Encoding Default -NoTypeInformation

インポートしたCSVの内容をパイプでエクスポート側に渡す、という動作になります。

オプションについて
Encoding 既定値(Default)はutf8NoBOM
ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode,
UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
NoTypeInformation TYPE情報ヘッダーをエクスポートしない

変換元のCSV

ColumnA,ColumnB,ColumnC
1,Ipsum,Sed
2,Magna,Est
3,Clita,Stet

変換後はこのようになります。

"ColumnA","ColumnB","ColumnC"
"1","Ipsum","Sed"
"2","Magna","Est"
"3","Clita","Stet"

但し、数値のカラムに対してもダブルクォーテーションが付けられるので、そこは我慢するしかないようです。

3,397 views

Windowsでもfindでファイル検索したい

コマンドでファイル検索したいとき、Linuxみたいにfindコマンドが使えたらなぁ・・と思うことがあります。
エクスプローラーで検索すればそれまでなんですが、コマンドでやりたいときがあります。

そこで見つけたのがPowerShellのGet-ChildItemコマンドです。
findに似た動作をしてくれるので試してみました。

構文はこんな感じです。

Get-ChildItem [[-Path] <string[]>] [[-Filter] <string>]  [<CommonParameters>]

このコマンドにはエイリアスが設定されており、gcilsdirでも使えます。

例)ドキュメントから拡張子.txtのファイルをサブディレクトリも含めて探す

Get-ChildItem -Path "C:\Users\user\Documents" -Filter "*.css" -Recurse -Name -File
オプション
  • -Path
    検索するフォルダー(ディレクトリ)を指定します。
  • -Filter
    検索条件指定
  • -Recurse
    サブフォルダー(サブディレクトリ)も含めて検索
  • -Name
    結果表示にファイルのパスだけを表示する
  • -File
    検索対象をファイルのみに設定

詳しくは公式ドキュメントをご参照ください。
https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-7.2&viewFallbackFrom=powershell-6

1,625 views

PowerShellでハッシュ値を確認

Linuxにはmd5sum等、ハッシュ値を確認するコマンドがありますが、Windows PowerShellでは使えません。
その代わり、get-filehashがありますので、それを使いましょう。(PowerShell ver4以降)

> get-filehash <file>

結果

MD5などアルゴリズムを指定する場合

> get-filehash -algorithm md5 <file>

結果

1,399 views