「xsel」と「sed」を使ってHTMLソースをブログにペースト

はじめに

こんにちは、野村です。

今回は、「xsel」と「sed」を使ってhtmlソースをブログへ簡単にペーストする方法を紹介します。

htmlソース含む文字列をそのままブログの編集フォームに貼り付けても、記事には正常に表示されません。
「<」や「>」をしかるべき文字列に置き換えないといけないのですよ。

今までは、投稿フォームに貼り付けたあとに手動で置換していたのだけど、sedを使えば簡単になるんじゃないかと気がついてスクリプトを書いてみました。

xselの導入

xselは、文字列をクリップボードに格納するコマンドラインのツールです。
以下のコマンドでインストールできます(debianの場合)。

# apt install xsel

使い方は簡単。
「abcd」という文字列をクリップボードに収めたいときはこうやります。

$ echo "abcd" | xsel -bi

また、ファイル全体をクリップボードに収めたいときはこんな感じ。

$ cat test.txt | xsel -bi

vimで開いている内容をクリップボードに収めたい場合は、コマンドモードでこうする。

:w !xsel -bi

独自コマンド「wcpy」

というわけで本題。「wcpy」という独自コマンドを作ってみます。
このコマンドにファイル名を渡して実行すると、ファイルの内容がブログに貼り付けられるよう置換された状態でクリップボードに収まります。

準備

テキストファイル「wcpy」を作成し、実行権限を与え、パスの通ったデレクトリに移動します。

$ touch wcpy
$ chmod 755 wcpy
$ mv wcpy ~/bin/

スクリプト

「wcpy」の内容は以下の通りです。

#!/bin/bash

sed -e 's/&/\&amp;/g' \
    -e 's/</\&lt;/g' \
    -e 's/>/\&gt;/g' \
    -e 's/\t/  /g' \
    $1 | xsel -bi

ついでにタブ文字をスペース2個に置換しています。

終わりに

以上、「xsel」と「sed」を使ってhtmlソースをブログへ簡単にペーストする方法を紹介しました。

次回は、このコマンドの機能をvimプラグイン化してみます。

選択文字列をブログの編集フォームに貼り付けるvimプラグイン
文字列をブログ編集フォームに貼り付ける際に便利なvimプラグインです。選択範囲内の「<」や「>」などを然るべき文字列に置換した状態でクリップボードに収めます。

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

シェアする

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

フォローする

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