友人に本をお勧めしたりするときに Amazon の URL を送ることはよくある. その際に日本語の本とかだと,

https://www.amazon.co.jp/%E8%89%AF%E3%81%84%E6%88%A6%E7%95%A5%E3%80%81%E6%82%AA%E3%81%84%E6%88%A6%E7%95%A5-%E3%83%AA%E3%83%81%E3%83%A3%E3%83%BC%E3%83%89%E3%83%BBP%E3%83%BB%E3%83%AB%E3%83%A1%E3%83%AB%E3%83%88/dp/4532318092

こんな感じでやたらと長くなってしまう. 本来のリンクを送るという用途においてこれで問題はないのだが,個人的にこれを送るのはなんかダサい気がしている.

だが,Amazon のリンクは https://.../dp/item_id/.../dp/ とその後ろについている文字列のみを入れれば良い性質があるので,先ほどの URL だと, https://www.amazon.co.jp/dp/4532318092 でも同じ商品ページに遷移してくれる.

これまでは,このように URL を簡略化したいときは,手動で不必要な部分を削除キーを連打して消してから送信していた. が,最近,日記を書くことが増えたり友人に本のリンクを送ることが増えてきてこれがめんどくさくなってきた. 何か良い解決方法がないか考えてみたところ,まあまあ簡潔に解決してくれる方法を考えついたのでここに紹介する.

大まかな流れとしては以下の振る舞いをする bash スクリプトを用意して,Mac の Automator に登録して,Spotlight から実行できるようにする.

  1. クリップボードに入っている Amazon URL を取得する.
  2. 不要な部分を正規表現を使って削る.
  3. 短くなった URL をクリップボードに戻す.

これをすることで,Amazon 商品ページでそのリンクをコピーし Spotlight から 登録された関数を実行するだけで,次にペーストすると簡易化されたリンクが貼り付けられる. コピペは元から必要なステップなので,Spotlight を普段から多用しているしてる身としては楽チンで良い.

実現方法

  1. Automator を起動,
  2. New Document で新規作成
  3. 種類は “Application” を指定
  4. “Run Shell Script” action を指定
  5. シェルプログラムの入力フォームが出るので,以下をコピペ
#! /bin/bash
url="$(pbpaste)"
DP="$(egrep --only-matching '/dp/[0-9A-Za-z]+/?' <<< "$url")"
echo "https://amazon.co.jp${DP}" | pbcopy

で名前をつけて保存して完了. この時の名前で Spotlight で検索をかけて実行するので簡単に引っかかりそうなものにしたほうがいいかも. だいぶ正規表現が適当なので,もっとちゃんとしたものに書き換えたほうがいいかも.amazon.com にも対応していないし.

参考

使い方

適当な Amazon の商品サイトの URL をコピーしたら,Spotlight を開き,Automator で先ほど作成したプログラムを検索・選択 . 友人のライン画面を開いて,ペーストしたら,いらない情報が消えた URL が貼られるはず.