👺

クリップボードの中身を匿名化する

2023/10/08に公開

はじめに

翻訳サービスとか生成AIとかで外部サービスに向かってコピペしまくりの今日この頃ですが、勢いにのってくると、ついつい手が滑っていろんな情報を貼り付けてしまいがち。間違ってプライバシーに関わる情報や機密情報をはりつけると後が怖いですね。

なんとか、貼り付ける前にクリップボードの公開したくない部分を置換できないか... ということでやってみたことを置いておきます。

置換スクリプト

まずは超簡単なシェルスクリプトを準備します。replace-clipboard-keywords.shとでもしましょう。

#!/bin/bash

# 置換情報を含むテキストファイルのパス
REPLACEMENTS_FILE="/path/to/keywords.txt"

# クリップボードの内容を変数に読み込む
content=$(pbpaste)

# ファイルから置換情報を読み込み、置換を実行
while read -r line; do
    [[ $line =~ ^# ]] && continue # 行が#で始まる場合、その行をスキップする
    old="${line%% *}"           # スペースまでの内容を取得
    new="${line#* }"            # 最初のスペース以降の内容を取得
    content=$(echo "$content" | sed "s/$old/$new/g")
done < "$REPLACEMENTS_FILE"

# 置換後の内容をクリップボードにコピー
echo "$content" | pbcopy

次に、keywords.txtで置換したいキーワードを定義します。たとえば、アカウント番号とか、APIエンドポイントとか、取引先や担当者の名前とか。

1234567890 <ACCOUNT_ID>
CustomerName Company-G
Yamada-san Mr.Y

このスクリプトを実行するとクリップボードの中身を置き換えてくれます。

ショートカットに登録

おそらくスクリプトのままだと実行がめんどくさくなって使わないので、キーボードショートカットに登録しています。最近知りましたが、MacだとShotcutsというアプリがあるのでこれを使います。

ℹ️のマークを押して、Run with にショートカットを設定します。これで、ペースト前に + \ でクリップボードの中身を置き換えます。

まとめ

原始的な手法ですが、個人的には Copy & Past のリズムを崩すこともなく、なかなかいい感じに使えると思っています。誰かが、正規表現を使えるようにしてくれたりするのを期待しています。

Discussion