クリップボード内の特定の文字を置換するコマンドを作成

はじめに

こんにちは、野村です。

今回は、クリップボード内の特定の文字を置換するコマンドの作り方を紹介します。

具体的には、クリップボード内にある「<」、「>」、「&」をHTMLエンティティに置換し、ついでにタブ文字を半角スペース2個に置換するコマンドです。

htmlソースを含む文字列をブログ記事の編集フォームなどに貼り付けるときに便利です。

準備

xselを利用します。なければインストールします(debianの場合)。

# apt install xsel

スクリプト

#!/bin/bash

touch /tmp/htmlcb
xsel -bo > /tmp/htmlcb
sed -e 's/&/\&amp;/g' \
    -e 's/</\&lt;/g' \
    -e 's/>/\&gt;/g' \
    -e 's/\t/  /g' \
    /tmp/htmlcb | xsel -bi
rm /tmp/htmlcb

以上の内容を「htmlcb」というファイル名で保存し、パスの通ったデレクトリに移動し、実行権限を与えます。

使い方

文字列をコピーした後、端末エミュレータなどでコマンド「htmlcb」を実行してからペーストします。
然るべき文字列が置換されている状態になっているはずです。

最後に

以上、クリップボード内の特定の文字を置換するコマンドの作り方を紹介しました。

ここのところ、同じようなネタが続いたけど、

「xsel」と「sed」を使ってHTMLソースをブログにペースト
htmlソースを含む文字列をブログに貼り付けても正常に表示できません。特定の文字を置換しないといけない。面倒です。そこをなんとかする独自コマンドを作ってみました。
選択文字列をブログの編集フォームに貼り付けるvimプラグイン
文字列をブログ編集フォームに貼り付ける際に便利なvimプラグインです。選択範囲内の「<」や「>」などを然るべき文字列に置換した状態でクリップボードに収めます。

これで打止め。

というわけで、今回はこれにて。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

野村 野村のプロフィール
メインPCはWindows10のVirtualBox上のFreeBSD。Linux/Unixの小ネタを求めて日々右往左往してたりする。