Windows 10のクリップボードのテキストを自動で編集する

    >


またまたditto記事です。

この関数ではdittoというクリップボードマネージャーから生成されたsqliteデータベースファイルを使用しています。なのでインスコしてください。

Ditto download | SourceForge.net

以下のbashスクリプトを使ってどうぞ。


modifyWindowsClipboardText(){ while [ true ]; do cp /mnt/c/Users/ifgm2/AppData/Roaming/Ditto/Ditto.db $TMPDIR/modifyWindowsClipboardText_Ditto.db WindowsClipboardTextById="$(sqlite3 $TMPDIR/modifyWindowsClipboardText_Ditto.db "$(cat <<'EOT' SELECT mText from Main order by lDate desc LIMIT 1 OFFSET 0 EOT )")" # e.g. https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_51c9ea5f-a16e-44ce-9469-1d313ced642a.png [[ "${WindowsClipboardTextById}" =~ ^https:\/\/yuis.xsrv.jp\/images\/ss\/ShareX_ScreenShot_.*\.(png|jpg|gif|mp4)$ ]] && { echo "${WindowsClipboardTextById}" | sed -Ee "s/(.*)/!\[\1\]\(\1\)/g" | clip.exe ; printf "Modified the Windows clipboard. : sharexUrl" ; sleep 2s ; continue ; } || { : ; } echo -ne "$(isodate)\tNothing updated on the clipboard.\033[0K\r" sleep 2s done }


isodate () { date +%FT%T%Z }

何をしているかというと、
僕はsharexを使っていて、スクリーンショットを撮影したら自動でクリップボードにURLがコピーされるように成っています。このURLをだいたい友人と共有したり記事の文章に貼り付けたりするんですが、この時Markdown形式にテキストエディタから編集する手間が生じます。まぁ、5秒くらいでできることなんですが。
このURLをMarkdownに置換する作業を自動化しています。

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_51c9ea5f-a16e-44ce-9469-1d313ced642a.png

![https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_51c9ea5f-a16e-44ce-9469-1d313ced642a.png](https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_51c9ea5f-a16e-44ce-9469-1d313ced642a.png)

  1. 最新のクリップボードテキスト(一意のもの)をデータベースから取得
  2. テキストデータが正規表現に一致したら、それに応じた処理をしてさらにクリップボードにコピー

データベースにはじめて登録された一意のテキストデータにのみ処理をするようにしているので、例えばテキストデータhttps://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_51c9ea5f-a16e-44ce-9469-1d313ced642a.pngをもう一度クリップボードにコピーしても、再度同じ処理がされることはありません。

URLとして使いたいんだけどなぁと言う場合には、ctrl + +から二番目にあるURLをコピーしてやれば、いいわけです。Markdownが使いたければそのまま一番目のものをペーストすればいい。

と、いったようなことをやっています。

isodate はじめてのBash。関数やエイリアスを読み込むまで [初心者向け]

  isodate(){
    date +%FT%T%Z
  }




お困りですか?この記事で紹介していることをマンツーマンで指導、解説、代行します。まずはお気軽にお問い合わせください。


Close Menu