2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OS X の Perl でクリップボードの読み書き

Last updated at Posted at 2014-11-12

 おいーっす。今日もちょいネタを投稿するよー。前回 AppleScript から Perl をしばいたので今回は逆をやろうと思ったんだけど osascript でやればいいってだけのネタだったので却下。ただ調べている過程で、

「そういや、こんなコマンドあったねえ」

 というコマンドを思い出したのでそいつを使って「Perl でクリップボードの中身をいじるスクリプト」をご紹介。

 まあ、内容はバッククオートでターミナルのコマンド叩くだけなんだけどね。使うコマンドは知っている人は知っている。そして私のように忘却の彼方という人もいる「pbpaste」と「pbcopy」です。今回はクリップボード内のテキストを Perl で取り込んで NFC した値をクリップボードに返しています。

 ポイントは pbpaste で取得する値を decode することと pbcopy に渡す際にはパイプ経由で標準入出力経由で渡すというところ。まあ Perl からクリップボードをいじるなんてことがある場合は役に立つ、かなぁ??

 NFCってなんのこっちゃ? っていう人は是非こちらの頁を参考にしてくださいねー → Unicodeの正規化

# !/usr/bin/perl
use utf8;
use strict;
use warnings;
use Encode;
use Unicode::Normalize;

binmode STDOUT, ":utf8";
binmode STDERR, ":utf8";
binmode STDIN, ":utf8";

# クリップボード内データの取得
my $cbData = decode('utf8',`pbpaste`);

$cbData = NFC($cbData);

# バックスラッシュをエスケープ
$cbData =~ s/\\/\\\\/g;

my $rtValue = `printf "$cbData" | pbcopy`;
exit;
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?