LoginSignup
3

More than 5 years have passed since last update.

mac で perl のワンライナー #2

Last updated at Posted at 2015-01-12

perl のワンライナーに関しての、適当な解説 #1/#2/#3/#4

初っ端から

題名に偽りあり。ruby のワンライナーがメインです、、、

google の検索をデフォルトブラウザで

  • うちの地域の災害通知メールが、マップへのリンクも何も無い状態で届いて不便でしかたない
  • 都市名無しで、マップを検索させると、長崎とか出ちゃう
  • google の検索で日本語が邪魔な時が多々ある
  • safari で開くのは好ましくない

と言うことで、数年前に作成したサービスメニュー
同じ様なものは、いくらでも転がっている

日本語以外、 map 、都市名 + map
三種作るが、シェルスクリプト部分以外は共通なので、纏めて

最初の画面

Automator で「サービス」を新規作成

ワークフローのウィンドウ

(なにも変えなくて良いと思う)
* テキストを受けとる
* すべてのアプリケーションを対象に

アクションの追加

「シェルスクリプトを実行」アクションを
* シェル: /bin/sh
* 入力の引き渡し: stdin へ

に設定し追加

スクリプトの記入

以下の三種類を作成

日本語抜きで検索
open "http://www.google.com/search?q=`ruby -rcgi -e 'print CGI.escape($<.read.chomp)'`&lr=-lang_ja"
mapを開く
open "https://maps.google.co.jp/maps?q=`ruby -rcgi -e 'print CGI.escape($<.read.chomp)'`"
東京都のmapを開く
open "https://maps.google.co.jp/maps?q=%E6%9D%B1%E4%BA%AC%E9%83%BD`ruby -rcgi -e 'print  CGI.escape( $<.read.chomp)'`"

実際に「東京都」で利用してるわけでは無い。
ruby ワンライナー前の URL エスケープ部分を好みの都市名で置き換えれば良い

 $ ruby -rcgi -e 'print CGI.escape("長万部")' | pbcopy 

保存

~/Library/Services に、それぞれ任意の名前で保存

使い方

文字列選択して、コンテキストメニューから、呼び出せ

短縮 URL を確認する

短縮 URL を貼り付けてくるメールの URL を展開したいが、わざわざそのために解析ウェブページを開くのも、、、
てな訳で、これもサービスに。

最初の画面

Automator で「サービス」を新規作成

ワークフローのウィンドウ

(なにも変えなくて良いと思う)
* テキストを受けとる
* すべてのアプリケーションを対象に

アクションの追加

「シェルスクリプトを実行」アクションを
* シェル: /bin/sh
* 入力の引き渡し: 引数として

に設定し追加

スクリプトの記入

短縮URLを確認する
/PATH/TO/wget --max-redirect=0  --spider -qS $@ 2>&1 | perl -lne 'print $1 if /Location:\s+(.*?)$/i'  

curl では力不足なので wget を使ってます。
wget は有名なので、homebrew や MacPorts にあるでしょう

アクションの追加

「クリップボードにコピー」を追加

保存

~/Library/Services に任意の名前で保存

使い方

文字列選択して以下略

wget ソースから

~/cmd 以下へのインストール

一応のメモ
配布元より、wget-1.16.tar.gzをダウンロード

$ export PERL5OPT=''

$ mv ~/Download/wget-1.16.tar.gz .
$ tar xzf wget-1.16.tar.gz
$ ./configure --prefix=/Users/XXX/cmd/ --with-ssl=openssl
$ make
$ make install
$ cd ../
$ rm -rf wget-1.16
  • make 途中で、 use strict; use warnings; が通らないスクリプトを使うコマンドは星の数ほどあります、、、
  • ああ、別に短縮 URL の確認のみのために、インストールした訳じゃありません。

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
3