スポンサーサイト
投稿日時 : -------- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- --:-- | スポンサー広告
ライブドアのアクセスポイントがFON対応に!
投稿日時 : 2008-02-04 16:07
東京都23区の屋外エリアを中心に約2,200箇所のアクセスポイントを所有、JR山手線圏内の約80%を網羅しているlivedoorのアクセスポイントが「FON_livedoor」というシグナル名で、FONのユーザーIDとパスワードでFONスポットとして接続可能になったようです。
 
以下おしらせメールから引用。
FON logo THE WORLD'S LARGEST
WIFI COMMUNITY
www.fon.com
 
フォネロの皆さん、エイリアンの皆さん、こんにちは。
FONより皆様へ嬉しいお知らせがございます。
 
山手線内約2200ヶ所のライブドアアクセスポイントが無料で利用できます!
 
本日、2月4日、FONは株式会社ライブドアとの提携を発表いたしました。
この提携によりフォネロの皆さんはライブドアの全てのアクセスポイントが利用可能となります。
 
「FON_livedoor」へアクセス!
 
具体的には、ライブドアのアクセスポイントに「FON_livedoor」というシグナルが追加され、フォネロの皆さんは、お使いのユーザーIDとパスワードでFONスポットとして接続が可能となります。
 
2008年8月4日まで「FON_livedoor」の利用は一切無料です。
その後は利用状況やサービス状況などに応じて検討していく予定です。
ぜひこの機会にお試しください!
 
「FON MAPS」では、ライブドアアクセスポイントの確認ができます!

 
ライブドアは、東京都23区の屋外エリアを中心に約2,200箇所のアクセスポイントを所有、 JR山手線圏内の約80%を網羅しています。
そしてこれらのアクセスポイントの位置は、通常のFON MAPSより確認できますので、 外出先でのご利用にぜひお役立てください。
 
エイリアン向けフリーアクセスキャンペーンを実施

 
さて、エイリアンの皆さん、朗報です!
本提携を記念いたしまして、本日より2ヶ月間「フリー・アクセス・キャンペーン」を実施いたします。
当キャンペーンは、FONと「FON_livedoor」の全てのアクセスポイントを、 FONの会員になるだけで(ご自宅にルーターを設置されていなくても)無料にてご利用頂けるというものです。
という訳で、当キャンペーン期間中、エイリアンの皆さんも無料で全てのFONスポットをご利用頂けます!
ぜひFONの便利さ快適さを体験してみてください。
そして、ぜひお友達にもご紹介ください!
 
フォン・ジャパンは今後とも皆さんの利便性向上を目指して頑張りますので
引き続きご支援よろしくお願いいたします!
 
フォン・ジャパン
スタッフ一同
2008年2月4日

 
これはなかなかうれしいニュース。使ったことないけどlivedoorのAPなら電波強度も高そうだ。追加されたlivedoorのAPに何か目印があるのかと思って見てみたけど何も分からなかったw
 
▼JR新宿駅周辺
livedoor_fon
 
スポンサーサイト
2008-02-04 16:07 | News | Comment(0) | Trackback(0)
awkのことが大体分かるようになる1行コマンド
投稿日時 : 2008-02-04 14:54
勉強のためにawkでできることを無理矢理いろいろ詰め込んだコマンド。一通りの機能を使ってみたのでこれが分かればawkがだいたい分かるかも。
以下のコマンドで/etc/passwdから「itmst」を含む行を抽出し、整形して表示することができる。
$ awk 'BEGIN{FS=":"; n=0;} function myfunc(a,b){if(a == 1000){print "!!!!uid 1000!!!!";} return a+b} $0 ~ /itmst/ {line[n]=$1"@"$3; n++; printf("NAME:%s, HEX-UID:%04x, uid+gid=%d\n",$1,$3,myfunc($3,$4));} END{for(i=0;i<int(n);i++){print line[i]}}' /etc/passwd
!!!!uid 1000!!!!
NAME:itmst, HEX-UID:03e8, uid+gid=2000
NAME:itmst2, HEX-UID:03e9, uid+gid=2002
itmst@1000
itmst2@1001

外部ファイル化して
$ awk -f test.awk /etc/passwd
とする場合は以下をtest.awkとして保存しておく。
test.awk
BEGIN{
    FS=":";
    n=0;
}

function myfunc(a,b){
    if(a == 1000){
        print "!!!!UID:1000!!!!";
    }
    return a+b;
}

$0 ~ /itmst/ {
    line[n]=$1"@"$3;
    n++;
    printf("NAME:%s, HEX-UID:%04x, uid+gid=%d\n",$1,$3,myfunc($3,$4));
}

END{
    for(i=0;i<int(n);i++){
        print line[i];
    }
}
以下解説。
 

■awkの特徴

awkは入力ファイルのテキストを行(レコード)単位で処理するスクリプト言語。処理する行は指定したパターンにマッチする行のみ。処理結果は標準出力に出力され、入力ファイルを変更することはない。C言語ライクな記述ができ、複雑な処理も可能。
 

■書式

$ awk [オプション] '{処理内容}' 入力ファイルパス
awkに続いてオプション、その後にスクリプト本体を ' (シングルクォテーション)と { } (ブレース)で囲む。その後入力ファイルのパスが続く。awkスクリプトを外部ファイル化した場合は-fオプションでファイルを指定する。
$ awk -f スクリプトファイルパス 入力ファイルパス

■BEGIN部

BEGIN{
    FS=":";
    n=0;
}
のBEGIN{ }で囲まれた部分は本処理が行われる前に処理される。
FS=":"
でフィールドの区切り文字を指定している。FSは組込み変数。これは
awk -F : '処理' 入力ファイルパス
のように-Fオプションで区切り文字を指定するのと同じこと。
n=0
の部分で変数nを初期化。これは本処理で配列のインデックスに使う。
awkの変数は基本的にグローバル変数。関数内の変数はローカル変数になる。
 
組込み変数の詳細
The GNU Awk User's Guide - 組み込み変数
 
実行順序の詳細
Awkプログラミング入門-第1回
Awkプログラミング入門-第10回
 
グローバル変数、ローカル変数の詳細
Awkプログラミング入門-第18回
 

■関数定義

function myfunc(a,b){
    if(a == 1000){
        print "!!!!UID:1000!!!!";
    }
    return a+b;
}
の部分でmyfuncという名前の関数を定義している。これはBEGIN、本処理、ENDの中以外ならどこで定義してもよい。複数の引数をカンマ区切りで受け取り、return で処理した値を戻せる。関数名は英文字か_(アンダーバー)で始まらなければならない。関数名と()の間に空白を入れてはいけない。
ここでは引数aが1000だった場合は!!!!uid 1000!!!!を出力し、その後単純にaとbを加算したものを戻り値として返す。
 
この部分の処理結果は以下の出力に該当(本処理で呼び出された時に出力)。
!!!!uid 1000!!!!
 
if文の詳細
Awkプログラミング入門-第11回
 
算術演算の詳細
Awkプログラミング入門-第6回
 
ユーザ定義関数の詳細
Awkプログラミング入門-第18回
 

■パターン

$0 ~ /itmst/
の部分はitmstが含まれる行のみ本処理するという意味。awkでは行(レコード)単位で処理が行われる。$0は入力行全体を表す。$1、$2・・・などはそれぞれ行中の1番目のフィールド、2番目フィールド・・・を表す。本処理は「パターン{アクション}」という形式で記述する。~ (チルダ)で左辺($0)に右辺のパターン(itmst)が含まれるかをチェックする。正規表現は/ /(スラッシュ)で囲んで記述する。~ の前に ! を付けて !~ とするとマッチする行以外が処理対象になる。~ の代わりに == を使うと左辺と右辺が等しい場合に処理対象になる。ここでは、「itmstという正規表現文字列にマッチする文字列が含まれた行のみを処理対象にする」ということになる。
 
フィールドとレコードの詳細
Awkプログラミング入門-第2回
 
正規表現とパターンマッチング、メタキャラクタの詳細
Awkプログラミング入門-第7回
 
正規表現の詳細
講座『正規表現』
 

■本処理

{
    line[n]=$1"@"$3;
    n++;
    printf("名前:%s, 16進数uid:%04x, uid+gid=%d\n",$1,$3,myfunc($3,$4));
}
前述の本処理のパターンにマッチした行のみがこの本処理に送られる。ここでは配列lineのn番目にフィールド1とフィールド2を文字@をはさんで代入し、インデックス用変数nをインクリメントしている。
printf関数はCと同じように書ける。$1(id)は「NAME:%s」の%sの部分に文字列として、$3(uid)は16進数に変換後4桁に整形して「HEX-UID:%04x」の%04xの部分に挿入される。$3と$4のそれぞれuidとgidは、あらかじめ定義しておいたmyfuncという関数で処理され、その戻り値が「uid+gid=%d」の%dの部分に挿入される。その後それらの結果が画面に出力される。最後の\nの改行コードはprintfの場合はprintとは違って自動的に改行されないので必要なら手動で挿入する必要がある。
 
この部分の処理結果は以下の出力に該当。
NAME:itmst, HEX-UID:03e8, uid+gid=2000
NAME:itmst2, HEX-UID:03e9, uid+gid=2002

配列の詳細
Awkプログラミング入門-第16回
 
printfの詳細
Awkプログラミング入門-第5回
 

■END部

END{
    for(i=0;i<int(n);i++){
        print line[i];
    }
}
END{ }で本処理が終了した後の処理を記述できる。ここではforで、処理回数分インクリメントしておいたn回の繰り返し処理を行っている。配列lineからi番目の値を取り出してprintで標準出力に出力している。awkの組込み関数のint(n)で変数nを整数として取り出している。
 
この部分の処理結果は以下の出力に該当。
itmst@1000
itmst2@1001

for文の詳細
Awkプログラミング入門-第14回
 
組込み関数の詳細
The GNU Awk User's Guide - 組み込み関数
 
 
[参考]
テキストの遊園地
講座『正規表現』
The GNU Awk User's Guide - Table of Contents

 
2008-02-04 14:54 | Linux | Comment(0) | Trackback(0)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。