2009年1月22日木曜日

CLIで天気情報を表示する

 最近ではさまざまなガジェットが氾濫し、デスクトップ環境でお天気情報を表示するということも珍しくなくなってきました。
 ならコマンドラインからでもお天気情報を表示できたっていいじゃなーいということで調べてみました。

weatherget というツールを使います。

インストール

wget http://download.berlios.de/weatherget/weatherget-0.4.0.1.tar.bz2
tar xvf weatherget-0.4.0.1.tar.bz2
cd weatherget-0.4.0.1
sudo python setup.py install

使い方

自分の街のコードを調べます。
$ weatherget -l tokyo

Tokyo, Japan: JAXX0085
と出るので、あとは、
weatherget --station-id=JAXX0085 --metric
とすれば、
Tokyo, Japan  (139.77, 35.67)
Tokyo, Japan 1/22/09 3:00 PM Local Time
Temperature : 7 C
Feels Like : 4 C
Conditions : Drizzle
Wind : 11 km/h, 0 km/h gusts, NNW
Visibility : 2.5 km
Humidity : 84 %
Barometer : 1014.6 mb, N/A
Dewpoint : 4 C
UV : Low, 0
Sunrise : 6:47 AM
Sunset : 4:58 PM
Moon : Waning Crescent
Time Zone : 9 GMT
長ったらしいので、
alias tenki='weatherget --station-id=JAXX0085 --metric'
として別名定義しておけば、tenki とするだけでいいので楽チンです♪

 weatherget 自体はpythonのスクリプトで書かれていますので日本語じゃないとヤダという方は挑戦してみてください。私は面倒くさいので、sed でやっちゃいましたw コードいじらないので楽ですしw
$ weatherget --station-id=JAXX0085 --metric | sed -f weather.sed

東京,日本 (139.77, 35.67)
羽田ヘリポート,日本 1/22/09 5:22 PM Local Time
気温 : 6 ℃
体感気温 : 3 ℃
天候 : ほとんど曇り
風速 : 13 km/h, 0 km/h gusts, NNW
視界 : 1.5 キロメートル
湿度 : 93 %
気圧 : 1017.9 ヘクトパスカル, steady
露点 : 5 ℃
紫外線 : 低い, 0
日の出 : 6:48 AM
日の入り : 4:58 PM
月齢 : Waning Crescent
タイムゾーン : 9 GMT
な感じで。


weather.sedの中身
s/Temperature/気温         /
s/Feels Like/体感気温 /
s/Conditions/天候 /
s/Wind/風速 /
s/Visibility/視界 /
s/Humidity/湿度 /
s/Barometer/気圧 /
s/Dewpoint/露点 /
s/UV /紫外線/
s/Sunrise/日の出 /
s/Sunset/日の入り/
s/Moon/月齢 /
s/Time Zone/タイムゾーン/
s/ km$/ キロメートル/
s/Iruma AB, Japan /入間基地,日本/
s/Omiya, Japan/大宮,日本/
s/ C$/ ℃/g
s/Low,/低い,/
s/ mb, / ヘクトパスカル, /
s/Mostly Cloudy/ほとんど曇り/
s/Fair/晴れ/
s/Cloudy/曇り/
s/Partly Cloudy/ところにより曇り/
s/Light Rain/小雨/
s/Fog/霧/
s/Shower/にわか雨/
s/Heavy Rain/大雨/
s/Rainstorm/雨嵐/
s/Flurry/突風を伴うにわか雨/
s/Sleet/みぞれ(雪まじりの雨)/
s/Snow/雪/
s/Snowstorm/吹雪/
s/Storm/嵐/
s/Gale/強風/
s/Thunder/雷/
s/Thunderstorm/雷雨/
s/Lightning/稲妻/
s/Hurricane/台風/

2009年1月7日水曜日

Ubuntuで重複ファイルを削除する

 ネットで画像ファイルをどんどん保存しまくっていくと、いつしか以前保存した画像をまた保存していて、同じようなファイルが複数溜まっていく・・・なんてことはよくあることです。
 チリも積もればなんとやら。画像フォルダの重複ファイルを調べていたらなんと555ファイルもあり、95Mにもなっていました。あまりよろしくないですよね。
 ということで今回は重複ファイルの整理方法。

fdupes というツールを使います。fdupes は指定されたディレクトリを検索し、ファイルサイズとmd5ハッシュ値で比較し、重複したファイルがあれば、それを表示してくれます。大変コンパクトで高速な素晴しいソフトです。

インストール

sudo apt-get install fdupes

使い方

重複ファイルを探し出す
fdupes -r ~/MyPicture/
~/MyPicture/ 以下を再帰的に検索して重複したファイルを表示します。
重複した余分なファイルを削除する
 重複したファイルを少しなら、-d オプションで逐一操作してもいいのですが、量が多いとなると大変です。そこで、削除するファイルのリストを掃き出させ、そのリストを rm コマンドに食わせるというやり方でいきます。

  • リストを作る。
    fdupes -rf ~/MyPicture/ | sort | uniq | grep -v '^$' > remove.lst
     これで削除すべき余分なファイルのリストが出来あがりました。

  • 実際に削除する
    while read file; do rm -v "$file"; done < remove.lst
     remove.lstから一行づつ読み込まれて削除されていきます。
     いきなり rm で削除は不安という場合は rm を trash に置き換えでもいいでしょう。