はじめに
こんにちは、野村です。
今回は、「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/&/\&/g' \ -e 's/</\</g' \ -e 's/>/\>/g' \ -e 's/\t/ /g' \ $1 | xsel -bi
ついでにタブ文字をスペース2個に置換しています。
終わりに
以上、「xsel」と「sed」を使ってhtmlソースをブログへ簡単にペーストする方法を紹介しました。
次回は、このコマンドの機能をvimプラグイン化してみます。
というわけで、今回はこれにて。