1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お手持ちのMacのあまねくbomなしUTF-8 CSVを撲滅し、"bomあり"に生まれ変わらせるクイックアクションの作り方

Posted at

ほぼ参考文献を組み合わせただけなので新規性はあまりないです。

完成品

こういうクイックアクションを作り、テキストファイルやCSVファイルのエンコードをbomつきUTF-8に置き換える。

スクリーンショット 2023-12-28 20.21.16.png

手順

1. Homebrewのインストール

いつもの。最近はコマンドラインからのインストールだけでなく、pkgファイルでのインストール(一般的なmacOSアプリのインストール方法の1つ)ができるようになっている。

テックな事柄に明るくない人向けに手順をざっくり
  1. 上記のサイトにアクセスする
  2. ページの「macOSをお使いの場合は新しい.pkgインストーラーをお試し下さい。」の右側にあるGitHubへのリンクを押す
  3. ページ最下部の「Homebrew-4.2.1.pkg」みたいなpkgファイルをクリックしダウンロード
  4. ダウンロードが終わったらダブルクリックで実行し、指示にしたがってインストールを完了させる

※筆者はコマンドラインでインストールしたので細部が違ったらすみません。

インストールには30〜60分ほどかかることが多いです。コーヒーでも淹れてのんびり待ちましょう。

2. nkfコマンドのインストール

brew install nkf

3. Automatorでクイックアクションを作成

macOSにはじめからインストールされている Automator.app を開き、「新規書類」→「クイックアクション」を選択。

ワークフローの設定

設定項目 設定値
受け取る項目 ファイルとフォルダ
検索対象 Finder.app
画像 お好み

ワークフローの中身

左側のサイドメニューから「シェルスクリプトを実行」をドラッグ&ドロップします。

設定項目 設定値
シェル /bin/bash
入力の引き渡し方法 引数として
このコードをコピペする
for f in "$@"
do
  if [ ${f##*.} = "csv" -o ${f##*.} = "txt" ]; then
  	/opt/homebrew/bin/nkf --oc=UTF-8-BOM --overwrite "$f"
  fi
done

保存時にアクション名の指定を求められるので、お好みで設定して保存してください。

4. 右クリックメニューに出てくるように設定(出てこない場合)

  1. 記事の最初の画像で開いているメニューにある「カスタマイズ」を選択するか、システム設定を開いて「セキュリティとプライバシー>機能拡張>Finder」と選択する
  2. 作成したワークフローにチェックを入れる

※作成したワークフローが表示されない場合、正しい場所に保存できていない可能性があります。 ~/Library/Services にワークフローが保存されているかどうかを確認し、ない場合は気合いでワークフローのありかを探し出してこのフォルダに格納してください。

雑感

バイト先で使うシステムがUnicodeに対応しているのは嬉しいのですが、エクスポートするCSVがどれもこれもbomなしなので、Excelで開くとすぐに文字化けしてしまいます。自分だけなら適当なビューワを入れるだけですが、そのファイルを他の人に丸ごと転送するシチュエーションも多いので、できれば相手の環境でスムーズに中身を確認できる状態にしたいという気持ちで作成しました。

参考文献

Shift JISに変換するバージョン。ただ、Unicode系はShift JISに変換できない文字がときどき含まれるので、あまりやりたくなかった。

nkfコマンドみりしらだったので調べた。

bashは基本文法も怪しいので調べた。

1
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?