復活しました。
ブログを復活させてみるのテストです。お久しぶりでございます。
ブログを復活させてみるのテストです。お久しぶりでございます。
さてはじめますか。といっても本編に入るまでにいくつか書いておきたいことがございます。第1回は前置きということで少しおつきあいいただければと存じます。
まずはお断わりとお願いから。
こちとらUNIXにはじめてさわって1年足らずのど素人。慎ましやかな方であれば、このようなページを書こうなどとは思いもしないような身の上、さらに仕事で使っているとはいえ、あらゆる場面での使用を想定できるほどの広範な知識を持っているわけではございやせん。
したがって、ひょっとしたら書いている内容に偏りや誤りがあるかもしれません。そんなことがないよう、十重二十重に気をつけるつもりでありますが。 それでも。もし、読んでいらっしゃる方の中にsed の達人、awkのチャンピオン、perlの王様などがいらっしゃって何かお気づきになったことがございましたら、「何書いてんだよこの小娘が(関係ないが、私は背が高くてとても小娘とは言えないです(笑))。けっ」などというつめた~い視線で見たりせずにどうぞどうぞメールでお知らせください。お願いします。
また、環境としては、基本的にMS-DOSを想定しています。職場でそうだからというだけで深い意味はないです(^^;まっく愛してるよお。
次に、道具すなわち実際に使用する言語を揃える必要がありますね。
UNIXでは、これらの言語は付属していますが、DOSあるいはMacの場合は、天から降ってくるのを待つ必要があります。 さあ、雨乞いだ!嘘です(^^;本当は、サイトからゲットする必要があります。
sedがゲットできるサイト情報[96.10.25作成・99.09.07修正]
MS-DOS用sed.exe(LOGOS版)(LHA)
http://www.vector.co.jp/soft/dos/util/se000880.html
すごくいろいろなプラットフォームにsedやgawkやgrepを移植された谷本孝浩さんのページ
http://www.vector.co.jp/vpack/browse/person/an001702.html
Mac用SedMac(Macに移植された山下巌さんのページ)
http://www.imasy.or.jp/~iwao/SedMac/SedMac.html
道具が揃ったら、さっそく料理にとりかかりたいのですが。その前に(前置きばかり長くてすま~ん)どの言語をやるにも必要な、正規表現のおべんきょからはじめましょ。 第2回から正規表現の回を数回にわたってやります(^0^)
すでにあなたが正規表現のマイトレーヤ(笑)でいらっしゃるのならすっとばしていただいて結構です。
それでは。今宵はここまでにて。ご意見ご感想ご要望手助けをお待ちしていまあす! また来週!
正規表現でございます。私はまっくからパソコンをはじめたもので、正規表現ってなじみがなかったのですが、DOSユーザーの方々にとっては、ワイルドカードはおなじみのものですよね。釈迦に説法かなあと思いつつも孫悟空の冒険ははじまるのであった。天の巻です。
正規表現とはなんぞや。あるものを選び出すのに、その名を直接個別にさし示すのではなく、その属性の規定によって選択をすることです。なんのこっちゃ。例をあげましょお。ファイル"hirasawa3.txt"というものがあったとして。そのなかみが以下のようなものだとします。
>more hirasawa3.txt
>嵐の海
>バンディリア旅行団
>我が心の鷲よ月を奪うな
>ヴァーチュアル・ラビット
>UNDOをどうぞ
>山頂晴れて
>静かの海
>死のない男
>太陽の木
>ロシアン・トビスコープ
ちなみに、これらは何かというと。平沢進の傑作ソロ3rdアルバム「ヴァーチュアル・ラビット」(POCH-1084, 注:残念ながら絶盤のようです)に収録されている曲のリストです。ええ、趣味に走ってます(笑)すみません。
ちなみに例ですから短いものにしてます。実際には、sedなどをこんなに短いファイルに使用することはあまりないでしょう。エディタで書きなおす方が早かったりしますので。
この中から「ヴァーチュアル・ラビット」を含む行を抜き出したいとします。ヴァーチュアル・ラビットと文字列を正確に覚えているなら直接指定できますね。grep(指定した表現とマッチする1行を抜き出すユーティリティーです)で以下のように打てば、該当する行が出力されます。
grep "ヴァーチュアル・ラビット" hirasawa3.txt
抜き出し結果は、
>ヴァーチュアル・ラビット
となります。
grepコマンドの使い方を簡単に書いておきます(実は、WINDOWSに
は"QGREPというフリーウェアがありまして、それを使えば、
DOSのコマンドラインで打ち込まずとも抜き出しをかけてくれるのですが)。
grep "抜き出したい文字列" 対象ファイル名 > 出力ファイル名
これで、抜き出したい文字列を含む行が出力ファイルに書き出されま
す。「> 出力ファイル名」を省略した場合は、標準出力、つまり画面に
結果が表示されることになります。
話がわきにそれました。もとに戻ると。上記の場合と違って、正確にヴァーチュアル・ラビットと覚えていない場合はどうします?記憶があいまいだった場合。だって、ヴァーチャル・ラビット、バーチャル・ラビット、ヴァーチュアルラビットなど似たような言い回しがたくさんあるではありませんか。
この例ならば、ラビットだけで抜き出すという手もありますね。grepもsedもawkもその文字列だけでなく、その文字列を含む1行に関して働くものですので、結果は同じになります。
grep "ラビット" hirasawa3.txt
抜き出し結果は、やはり
>ヴァーチュアル・ラビット
の1行となります。
けれど。ラビットだけじゃあ余計な行まで抜き出してしまう危険がありません?この例ではないですよ。でも。もしかしてひょっとしてラビット関根という文字列が同じファイルの中に入ってるかもしれないじゃないですか?(そんなことありえんって?しつれ~しましたああ(^^;)
そんなときに、正規表現を使えば、直接なが~い文字列を指定することなしに、なおかつ正確にほしいものを選べます。簡単に言ってしまえば、変数を使うということですね。そうした、変数の役割をする記号のことをメタキャラクタ(特殊記号)といいます。んでもって正規表現をマスターするとはいかにこのメタキャラクタを使いこなせるかということなのです。
なが~い前置きは以上でおしまい。次回正規表現地の巻では、正規表現の眼目メタキャラクタについて書きます。じゃまた来週~!
さて今週もやってきました、sedは日暮れてのコーナーです。はたして本当にperlにまでたどり着けるんだろ~か?(^^;と茫洋たる未来に思いをはせてくらくらくらと眩暈さえ覚える今日この頃ですが。正規表現の不思議の国へ一緒に参りましょう、アリスたち。
メタキャラクタのお話です。前回の終わりに書いた、変数として働く文字でしたね。基本は、
. * ^ $ [ ] \
の6つです。上のはじめの文字はゴミではなくドットですので念のため(笑)もちろんこの他の文字もありますけれども、それは後の回になってひょっこり出てくると思いますのでよろしゅうに。ではこれらの文字の説明をば。
その1: . (ドット)
これは、DOSのワイルドカードでは「?」にあたるものです。つまり改行以外の任意の一文字を意味します。DOSではあんまりワイルドカードとして「?」を使わないですよね?でも正規表現ではよく使うんです、このドットを。同じ役目をするのにこの違いはなんだろ。その謎は次の項ではやくも解き明かされます。
その2: *(アスタリスク)
くせもの登場なり。ゆめ油断めさるな。なぜってこれは、DOSの*と似て非なるものですもの。DOSでは、*は、複数の文字の代わりであって。よくすべてのファイルを表現するのに「*.*」としたりしますよね。
でもでも正規表現では。*は、直前の文字の0回以上の繰り返しとなっちまうですだよ。え!違いがわかりにくいですって?そういうときは例だあ。
とにかく先頭がcである単語を表現したいとします。 DOSでは、「c*」でOKですよね。ちなみに、cではじまるファイル名、拡張子は何でもよいのならば、「c*.*」とするのは言わずもがなでしたか。
それが、正規表現の場合だと、「c*」とすると先頭にcがついているファイルもついていないファイルもぜ~んぶ指してしまうことになるのん。なぜなら、正規表現の*は、直前のcの0回以上の繰り返しすなわち「cがあってもなくてもいいぞ!」という意味になるからです。じゃあどうすればいいんでしょう?答えは、「c.*」というふうに、cの次に任意の一文字を表す「.」を入れておく。すると、「cの次に何か文字があったりなかったり(=.の0回以上の繰り返し)」となってcではじまる単語を指してくれるようになります。ほっ。
さっき前ふりした、ドットをよく使う謎というのは、このあたりにかかわってくるのでして。「.*」としてはじめてDOSの「*」と同じく任意の長さの文字を表わせるのようになるからでした。単独の*って使う意味がないのです。これってよく考えるとすごくない?正規表現の*は存在と非存在の両方を含んでるですもん。おお。これをもとに宗教とかつくれるんじゃないでしょうか?つくんないですけど(笑)
その3: ^(サーカムフレックス)
使い方というか、使う位置によって実は意味が2通りにわかれるのですが、ここでは まず、普通の使用法を書きます。^は、行頭という意味です。 「^、」だと行頭にきている「、」のことになります。
その4: $(ドル記号)
約100円。うそうそうそうそ。えと、上の^とちょうど反対で、行末のことです。「す$」とすれば、行のいっちゃん最後が「す」で終わっているものが探せますね。じゃあサーカムフレックスと組み合わせて^$とするとどうなるか。「行末が先頭である。」ふうむ。つまり、中味がなにもない(注:スペースさえも入ってない)空行ですね。
その5: [ ](ブラケット)
スヌーピーの仲間でライナスくんているでしょ?彼がいつも肌身離さずもっているものです。←それはブランケットでしょ~が!どもしっつれ~しました!(構想2日ギャグ)あんまりこんなことばっか書いていたら真剣に読んでもらえないかしら。しくしく。
ええと。本当の意味は中に入っている文字のどれかひとつにあてはまるということ。たとえば。日本語の格変化にこれを使えば便利。文章の中で、動詞の「歩く」をぜ~んぶ抜き出してしまいたいとき。歩の字だけ書いたら、名詞の「徒歩」とか「競歩」とか「歩のない将棋は負け将棋~」(笑)とかいらないのががんがん抜き出されてしまいます。ううう。
やはりここは。動詞だけのもつ性質を考えんといかあん!つまり。歩くは、5段活用でしょ、歩かない、歩きます、歩く、歩くとき、歩けば、歩け、歩こう。ああ。イ音便もあったぞ。歩いて。ということは。動詞では、歩の次にくる文字は、「い、か、き、く、け、こ」の6通りしかな~い。歩[いかきくけこ]とすればおおぶらぼお!あ。でもこれでも「徒歩か。ああしんど」というのが出てしまいますが(^^;話が深入りしすぎるのでここでは、更に精度をあげる話はやりませんです。ごめごめね。
まとめておくと。A[BC]は、AB、あるいはACという意味ですよん。
その6: \(日本語キーボードでは円記号・英語ではバックスラッシュ)
約0.01ドル。←ってもういいってば。しつこいなあ(^^;。これは、エスケープです。正規表現でつかうメタキャラクタの意味をなくしちゃう記号です。
おれはこのドットを「任意の一文字」じゃなくて「ほんとおおおにほんとおおのドット、英語の文末に打つやつ」として書いてるんだよわかってくれよおお(;_;)と泣くかわりに、¥.と打ちましょう。すると、正規表現ならではの意味はなくなって、ただのドットになります。同様に、*も^も[ ]もその他ここに書いていないメタキャラクタも、そのすぐ前に¥をつければ、すべてメタじゃない普通の文字に戻してくれます。
以上、地の巻では大急ぎで主なメタキャラクタについて書きました。次回正規表現の最終回、人の巻はメタキャラクタの組み合わせの予定なり。ではではまた来週!ごきげんよう!
うううう。すげえ間があいてしまってすみません。正規表現の最終回です。いろいろな正規表現の組み合わせについて。あそ~だ。始める前に前回の補足を少しだけ。
エスケープ記号の「¥」は、UNIXの「\」(バックスラッシュ)と同じです。DOSを想定しているので何の注釈もなしに書いてしまった。すまぬすまぬ。
さて本題。今回はいろいろな正規表現をがんがん挙げていきますね。
例題1:スペースしか入っていない行を探したい。どうしましょ。
まず。空行とスペースしか入っていない行とは異なるものということに気をつけましょおお。空行を表すのは、前回も書いたですが、^$ です。
スペースを表すには、実際にスペースキーを押せばいいです。スペースが1つ以上含まれるということで。(スペース).*ですね。
注:(スペース)ってのは、スペースを押すさまを表してるんであって、スペースっていう文字を入力しちゃいかんですよ。
これもまた前回の復習ですが、*は、その直前の文字の0回以上の繰り返しなんで、スペースが1個じゃだめ。2個にしてね。
例題2: 電話番号を抜き出したい。如何すればよいのかよいのか。
電話番号の構造を考えます。東京ならば、
03-3xxx-xxxx
03-5yyy-yyyy
のどっちかですよね。03と-は両方共通だから、正規表現使わずそのまま表しましょう。問題は、xとyの部分にあてはまる数字ですね。0から9までのどれかが入るのだから、前回やったブランケットじゃなかった(笑)、ブラケットを使いましょう。ブラケットの中に文字を入れると、そのどれかになるんでしたね。
[0123456789]とすると、0から9までの数字のひとつという意味になります。でも長くて打つのがめんどくさい。実は、数字とアルファベットには、次の表現法があるのだ。
[0-9] 0から9までのどれか1つの数字
[a-z] 小文字のaからzまでのどれか1つの文字
[A-Z] 大文字のAからZまでのどれか1つの文字
これで答がでるぞ。 東京の電話番号は、
03-[35][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] ですねん。
[35]は3か5かどっちかという意味ですので念のため。できたぞおお。と安心してちゃだめなのだ。電話番号表記には、次のようなものもありましたぞよ。
03(3xxx)xxxx
さっきの表記と違う点はどこだ。「-」の代わりに「(」と「)」が入った点ですね。さっきのと今度のと両方を表せる正規表現考えましょう。答えはこれだい。
03[-(][35][0-9][0-9][0-9][-)][0-9][0-9][0-9][0-9]
でした。さらに余力のある方は、全国の電話番号も考えてみるとおもしろいぞお。
例題3: 今度は、ある文字を含まない行を探してみたい。ひねくれてますか?(笑)
いや、全然ひねくれてないです。そういうケースのための正規表現もございます。
ブラケットとサーカムフレックス^を併用します。サーカムフレックスって普通に使ったら、行頭という意味でしたわね。それが、ブラケットの中の一番先頭に置くと、意味が変わっちまうんですのよ。あ以外を抜き出したいなら。[^あ] とする。おお新しい用法なり。数字以外だったらば。[^0-9]ですし。アルファベットと数字以外だったら。[^0-9a-zA-Z]となります。
ということで今回は実際に使いそうなケースの一部をとり出してみました。これ以外のものも、 sedの中で説明してゆきますねん。では。来週からやっとsedのコマンドに入ります。次回第5回 command garbled! をお楽しみに!ではまたらいしゅ。
こんばんは。「彼女のCOMMAND GARBLED!によってげげげえとなったsedの花嫁、さえも」の時間です。パタフィジックな旅に出ましょう。おのおのがた。
sedとは、簡単に言えば、検索置換をコマンドラインで一発でやってしまうものです。普通の量のテキストを扱うならば、検索置換は、秀丸やWordやelisやmifesやその他エディタ、ワープロ等でできてしまうことなので、必要ないと言えましょう。
だがしかし。だがしか~し。ひとつひとつは短いとはいえ、200もの文書の中の表記を全部変えてしまいたいとなったらいかがせん。そういう賽の河原/シジフォス的所業って聞いただけでくらくらしてきません?だってファイル開くだけでめんどくさいじゃ~ん。
そういうときに自動的に置換してくれるのがわれらがsedでございます。さあさっそく基本構文だああ。
sed (オプション)"(コマンド)" 対象ファイル > 出力ファイル
この構文で気づいてほしいことが1点。出力ファイルをリダイレクト(>)していることです。sedで行う置換の結果というのは、オリジナルのファイルにそのまま上書きされるんではないのだ。つまり、別の結果ファイルを作るということですね。ちなみに「> 出力ファイル」を省略すると、画面にだだだだあと結果が出てしまって、はいそれまでよ、なので(;_;)ちゃんとリダイレクトして保存しましょう。
オプションはおまけなのでなくてもよろし。あってもよろし。"~"の中のコマンド部分はいろいろあるので次回以降解説してゆきます。
今回は美中の美、じゃなかった渦中の蚊でもない、基本中の基本をやるぞお。準備はいいか。歯をくいしばれっ!ちと違いますね(^^;
sed "s/探す言葉/置換する言葉/" 対象ファイル > 出力ファイル
この文が何を言っているか通訳してみるあるね。「探す言葉を対象ファイルの中から見つけだしてそれを置換する言葉に変えてしまった後、結果をあますことなく出力ファイルの中にぺっぺっと吐き出しやがれ」でした。んまっ。ちと通訳の方がお下劣だったようですわよ。って自分なんですが(^^;
sedコマンドの「s」を使っています。これは"s/A/B/"の形で、「AをBに置換せよ」という意味になるコマンドです。私なんかよく、Bのあとの「/」を忘れてしまってsedに叱られてしまいます。お叱りの言葉が、今回の標題の「COMMAND GARBLED!」なんです。これは構文のミスを教えてくれる言葉なのん。でもどこかにミスがあると言うだけ(笑)。なげ~え構文だとどこが間違っているか探すのが一苦労なんですよお。「間違ってるで~」というだけではなしにどこが間違っているかびしっ!と教えてくれたらいいのにね。ふるるう。
それはともかく、前回までの正規表現と、今回の基本の構文をマスターするだけで、もうかなりのことができるようになったですよ。次回はその例と他のコマンドの話をやりますね。ではまた来週!
いざゆかんsedの水面に帆を立てて。前回の復習です。
sed ”s/探す言葉/置換する言葉/” 対象ファイル > 出力ファイル
この構文でもってsedの基本、検索置換ができるようになりました。武器を持ったらがんがん使うべし。んでも文章の中の言葉の単なる検索置換はつまんにゃいのでちょっと使い方を変えてファイルの処理をしてみましょう。それは何かと尋ねたら。べんべん。大量のファイルをいっぺんに別のところにコピーしたり、移動させたいとき。バッチファイルをつくって一気にやらせちゃえますよね。そのバッチファイルつくりにsedがつかえます。
源氏物語のディレクトリgenjiがあって、その中に以下のファイルが納められているとします。
aoi.txt
hahakigi.txt
hananoen.txt
kiritubo.txt
momijino.txt
sakaki.txt
suetumub.txt
utusemi.txt
wakamura.txt
yuugao.txt
これら10個のファイルをごっそり別のディレクトリにコピーしたい。別のディレクトリをgenjiと同じドライブの直下のworkディレクトリとします。
ファイルaoi.txtひとつだけで考えると、
copy aoi.txt \work\aoi.txt
という形にすればよいことがわかります(\work\.でもOKですね)。残りのファイルもみんなこの形にします。そんでもってこういう形がリストになったファイルをバッチファイル(~.bat)にすればいいわけです。手順は次の通り。
ファイルのリストを一つのファイルに納めます。
genjiというディレクトリにこれらしか.txtファイルがない場合
genjiディレクトリの下でls -1 *.txt > listとすれば、これらのファイルのタイトルが1行に1つずつ入ったファイルlistが作成されます。中を見てみると。
>more list
>
>aoi.txt
>hahakigi.txt
>hananoen.txt
>kiritubo.txt
>momijino.txt
>sakaki.txt
>suetumub.txt
>utusemi.txt
>wakamura.txt
>yuugao.txt
となっています。
listファイルの中身をsedを使って書き換えます。
すべての行をcopy aoi.txt \work\aoi.txtのようにしたいんでしたね。目標となるcopyではじまる文をもういっぺんよ~く見て下さい。aoi.txt(注:ここは行によってsakaki.txtやutusemi.txtにかわりますね)が2回でてますね。これは新技を使わねば表現できません。どういうことかというと。1行全体の内容を表現し、かつそれをひとつの変数として別の場所で使える形にカプセル化するような正規表現を使う必要があるわけです。う~むとここで途方に暮れないで下さいね(;_;)難しい言い回しが好きなだけなの(^^;)。
形はかんた~ん。正規表現.*の周りを¥(と¥)で囲めばいいのだっ。つまり、\(.*\)としまあす。これは、1行に入っている文字が何であろうとそれを全部指すうえに、次回以降それらをまとめて変数\1として表現させてくれる便利なやつなのです。
いよいよsed構文だい。対象ファイルはさっきのlistでした。結果ファイルは、そうですね、cptxt.batとでも名づけましょうか。ファイル名はそれこそ飯島愛でもちみもこのやろでも何でもOK(笑)ですが、拡張子だけは必ず.batにしないとばちがあたるぞお(^0^)
sed "s/\(.*\)/copy \1 \\work\\\1/" list >cptxt.bat
解説しますね。これは、listのすべての行に関して、
\(.*\)←1行ごっそりを、copy \1 \\work\\\1に変えろおと言っています。\1は、\(.*\)のこと、つまり置換前の1行全体のことです。問題は、\\work\\\1ですね。この\の大群はなんだろ。
\は、エスケープ記号でした。つまり、直後のメタキャラクタの意味をなくす役割のメタキャラクタでしたよね。でも今回の\はディレクトリをあらわすだけでその後の文字の意味をなくすとかなんとかいうメタな役割とは無関係です。だから、\ を二つ重ねて、\\とし、「これは正規表現とは無関係なんだよ~ん」といわなくてはならないのだ。めんどくさいですが。\\workは、ふだんの\workのこと。その 後ろの\\\1は、ふつうの\のあとに、\1がきているだけです。まとめておきますとsedの構文の中で、メタキャラクタとしてでない\を使いたいな~と思ったら、その使いたい数より1つ多く\をつけよう!ということです。で、変換結果を覗いてみましょう。
>more cptxt.bat
>
>copy aoi.txt \work\aoi.txt
>copy hahakigi.txt \work\hahakigi.txt
>copy hananoen.txt \work\hahakigi.txt
>copy kiritubo.txt \work\kiritubo.txt
>copy momijino.txt \work\momijino.txt
>copy sakaki.txt \work\sakaki.txt
>copy suetumub.txt \work\suetumub.txt
>copy utusemi.txt \work\utusemi.txt
>copy wakamura.txt \work\wakamura.txt
>copy yuugao.txt \work\yuugao.txt
これで問題がなかったら、
>cptxt
と入力してこのバッチファイルを実行させます。10ファイルががんがん\workの下にコピーされるはずです。
今回のsedの用法は、copyで10ファイルを扱う程度でしたら、あまりありがたみがないかもしれませんが、rcp(リモートコピー)でたくさんのファイルのコピーをいったりきたりさせるときなどに非常に便利です。特に、UNIXとDOS間でコピーを繰り返すときなど、ファイル名がDOSだと短くなっちゃいますので、こうして自動的にやらせるようにすると、似通ったファイル名の混同もなくて安全ですねん。
今回はsedの簡単な検索置換の用例でした。次回はsedの別コマンドを扱う予定です。ではまた来週!(になればいいが(^^;)
こんばんは!sedの夜明けはちかいぞ龍馬くん。というわけでちかんのおしりをはじめましょ(^0^)
sedの別コマンドのお話にうつる前に、置換でやっておきたいことがまだいくつかありました。今回はフラグ、次回にスクリプトファイルについて書きます。さっそくフラグに突入でい。
sed ”s/検索する言葉/置換する言葉/” 対象ファイル > 出力ファイル
この構文で置換の基本はできるようになったですが、実は、これだけでは対処できない置換があります。例えば。次の3行だけが入っているファイル sample.txtで。
例1: ほにゃらげのぽぽ。 例2も参照のこと。
例2: せったくれのとと。
例3: さーとーますりぷとん。 例1、例2も参照のこと。
例というのをExampleに置換したいとして、sedを使いますと。
>sed "s/例/Example/" sample.txt
>
>Example1: ほにゃらげのぽぽ。 例2も参照のこと。
>Example2: せったくれのとと。
>Example3: さーとーますりぷとん。 例1、例2も参照のこと。
という結果になってしまいます。2番目に一致しているはずの部分が「例」という言葉のままになってて「Example」に変換されていな~い(;_;)
というのもいっちゃん最初に見つかったものしか変換してくれないのがsedの特徴なんですのよほほほ。したがって、検索置換したい言葉が1行に複数出てくるとあらかじめわかっている場合は、構文におまけをつけ加える必要があります。 そのおまけをフラグ(flag)といいます。構文を修正しますと。
sed ”s/検索する言葉/置換する言葉/フラグ” 対象ファイル > 出力ファイル
フラグのうち使えそうなもの2つの説明をば。えいやっ。
g
ウは宇宙船のウ。gはglobalのgです。探す言葉が1行の中にいくつ入ってようとそれをぜ~んぶ置換しようという意味。
n
n=1~512。1行中で何番目に出てきた検索語を置換するかを決めます。デフォルトの状態ではn=1ということになりますね。
さてさっきのファイルsample.txtで実験しようそうしよう。 まずはぐろーばる。
sed "s/例/Example/g" sample.txt
結果は、
Example1: ほにゃらげのぽぽ。 Example2も参照のこと。
Example2: せったくれのとと。
Example3: さーとーますりぷとん。 Example1、Example2も参照のこと。
お次はn。ここではn=2としてみると。
sed "s/例/Example/2" sample.txt
結果は以下のとおり。2番目に一致した部分しか置換されません(^0^)
例1: ほにゃらげのぽぽ。 Example2も参照のこと。
例2: せったくれのとと。
例3: さーとーますりぷとん。 Example1、例2も参照のこと。
以上置換コマンドのおしり(最後)にくっつけるフラグのお話でしたよん。 ではまた来週スクリプトファイルの巻でお会いしましょうね。
さあゆこう!sedの世界にハインライン。←おやじぎゃぐかも(^^;)
コマンドラインの直線の世界を2次元に広げてくれるありがたいファイルがスクリプトファイルです。おおなんだかアボット『多次元☆平面国』(東京図書)みたい。ラインランドからフラットランドへ。
私は最初スクリプトファイルの存在を知らずにsedの文をぜ~んぶコマンドラインで打ち込んでおりまして。うううう。聞くも涙、語るも涙さくりもよよの辛苦でございました。この悲劇を決して繰り返させるまじ!とここにでででんとスクリプトファイルのお話をするものであります。ごっほん。
sed -f スクリプトファイル 対象ファイル > 出力ファイル
ああいきなり構文が出てきました。気がはやいんだからもう。前回までの構文と変わっているところを探しますと。-fオプションとスクリプトファイルが加わっていて、”s/検索する言葉/置換する言葉/フラグ”というのがなくなっているのですね。まずオプションからご説明をば。sedのオプションは、以下の通り。
-f
このあとにスクリプトファイルがくるからねええという前ぶれ
-e
このあとにくるのは命令だからねええという前ぶれ
-n
入力行をぜ~んぶ自動出力するのはやめい!というオプション
-nを使うケースってすごく稀だと思われるので、今回やるのは、上ふたつのオプションのみにします。で例によって例のごとく例。テキストファイルsample2.txtの中身が次のようなものだとします。
例1: はんにばるかにばるれくた。 例2も参照のこと。
例2: じょおでえほぉすた。
例3: だるぐりっしゅとこおでりあ。 例1、例2も参照のこと。
このファイルの中で、「例」をExampleに、さらに、「参照のこと」を「参照してください」に変えたいとします。前回までのやり方だと、
sed "s/例/Example/g" sample2.txt > pppp
として、Exampleに変換されたファイルを一旦作業ファイルppppの中に納めたうえで、さらにそのppppファイルに対して、
sed "s/のこと/してください/" pppp > kekka.txt
と打ち込んで最終結果ファイルkekka.txtを作る必要があります。2段階必要なわけですね。
でもこれをいちいちやってたらしんど~いめんど~い。ふふふふふ。実は簡略するやり方があります。さっきのスクリプトファイル呼び出しの-fはほんのちょっとだけこっちに置いといて、先に-eを使ってみましょう。
sed -e "s/例/Example/g" -e "s/のこと/してください/" sample2.txt > kekka.txt
です。ひとつひとつの命令の前に、-eを置くことで、2つの命令を1行で表現できました。お~め~で~とおおお(^0^)
がこれにしても、なが~い1行をミスタイプなしに一気呵成に(って別に速度が問われるわけではないですが(^^;)打ち込まなければならないことには変わりはありません。でもでも。スクリプトファイルなら。エディタを使ってゆっくり編集ができます。今と同じことをスクリプトファイルでやってみましょう。
エディタを起動して、次の2文を打つ。1行にひとつの命令。
s/例/Example/g
s/のこと/してください/
その2文のおさまったテキストファイルに名前をつけて保存。ここではscriptという名にしましょう。
コマンドラインで、次のようにsedの文を打つ。
sed -f script sample2.txt > kekka.txt
これでおしまい。簡単になりましたでしょおお?
-fでscriptの中身を呼び出して、それを1行ずつ“~”の中身に入れてくれているのですねん。正規表現のミスなんかで、sedを失敗した場合も、スクリプトファイルの中身だけ入れ換えればいいだけでいちいちなが~~い文を打たなくてすむため、非常に楽です(^0^)
もちろん、スクリプトファイルは、sedの置換コマンドだけでなく、他のコマンドの場合にも使用できます。
というわけで、今回で置換コマンドのお話はおしまい。次回から、sedの別 コマンドについて解説してゆきます。ではではあまたらいしゅうううう。
sedもいよいよ肉詰めピーマンじゃなかった大詰めの段階に入ってまいりました。今回は置換以外のコマンドを扱うのに必須のアドレスの話です(検索置換の場合でも使用しますが)。
アドレスって一体何かといえば、行指定のことなんです。
あれ一言で終わっちゃったい。 それじゃあんまりなのでもう少し詳しく。アドレスには、行アドレスとパターンアドレスの2種類があります。おしまい。
こんなところで終わるなっちゅ~に。え~っと。前回までの検索置換 のお話のなかではアドレスは指定しておりませんでした。というのは、検索置換をすべての行に適用したかったからです。ぜ~んぶの行の中から探して置換せよ!と言っていたからですね。それが、アドレスを指定すると、地域限定となるですよ。
つまり。行アドレスだと、何行目だけにコマンドを適用しなさいという、行番号を指定します。それ以外の行をsedは無視します。一方、パターンアドレスだと、そのパターン(正規表現や文字列などで指定)がある行だけにコマンドを適用しなさいということになります。
アドレスは、sed構文の中ではコマンドのすぐ前に置きます。 では例をあげて~いこ~~よお。
こんなファイルsample.txtがあったとさ。
千葉・船橋市
千葉・柏市
東京・江東区
検索置換で千葉のあとの・を県にしたいとき。パターンアドレス指定だと、こういう文になります。
sed "/千葉/s/・/県/" sample.txt
置換コマンドのsの前に、/千葉/をつけ、「千葉という文字列が入っている行だけで、・を県に変えなさい!」と言っているわけです。パターンアドレス指定の場合は、前後をスラッシュ(/)で囲むことに注意!
行指定だと、変換したいのは、1行目と2行目ですので、
sed "1,2s/・/県/" sample.txt
となります。カンマ(,)を行番号の間に置き、1行目から2行目までという意味にしています。ちなみに、 3,10だと3行目から10行目までということになります。行指定の場合は、行番号の前のスラッシュは不要です。
パターンアドレス指定と行指定は1つの文の中で混在させても使えます。
たとえば、1行目から最初の空行(空行は、正規表現で^$と表すのを思いだしてください)までを指定したいときは、1,/^$/とします。
さてこれで置換以外のコマンドに入る準備ができました。来週の第10回でsedの基本は終わることになります。では。来週までしばしお待ちを(^0^)
おひさしぶうりいねええ。さぼり~までごめごめ~にゃあみ~ご。
sedの最終回です。置換以外のコマンドのお話として。削除、挿入、追加を紹介しますねん。ではさっそく本題~にゃ。
削除コマンドはd。 構文はこうです。
sed "アドレス d" 対象ファイル > 出力ファイル
アドレス指定は前回やりましたねん。行番号指定でも、文字列指定でもどちらでもOKです。正規表現を使いたいなら、/正規表現/dですね。いずれの場合も、指定の行全体を削除しますので要注意。
--------------------------------------------------------------------------------
行全体でなく、指定した文字列のみを削除したい場合は置換コマンドのsを使います。 s/検索文字列//とすればおおけえ。置換文字列に何も指定しないことによって検索文字列が削除されるわけなんだよおん。
--------------------------------------------------------------------------------
挿入コマンドはi。追加コマンドはa。
挿入は、指定した行の前にテキストを挿入します。追加は文字通り指定行の後にテキストを追加します。
この2つのコマンドはDOSコマンドラインでは直接打ち込めないです。命令が複数行にわたるから。スクリプトファイル(第8回参照)に書いてsed -fで呼び出しましょう。
構文はこうなります。
アドレス i(またはa)\
挿入(または追加したい)テキスト
ここでの¥マークは何かといえば、改行を無視するエスケープだったりします。難しく考えずに例示太郎。sample.txt というファイルの中で「塔にふる雪」という文字列の入った行の前に「坂田靖子作」というテキストを挿入したい場合。エディタで次のような文を書いてscript1という名で保存します。
/塔にふる雪/i\
坂田靖子作
んでもって。
sed -f script1 sample.txt > pppp
とすれば、結果ファイル pppp が出来ます。追加は、iのところがaに変わるのみ。また、挿入・追加したいテキストが2行以上ある場合は、テキスト内の改行の前に必ず¥マークを入れ、「まだ構文の続きなんだよおお」ということを示す必要があります。
以上で今回のお話はおしまい。sedの基本についてのお話もおしまい。
10回にわたって、プログラミング未経験の初心者(自分含む)がsedを使うにあたって必要最小限なことの説明をしたつもりです。これまでに説明してきたコマンド以外にもsedには読み出し、書き出し、変更コマンドなどがあります。が。実際に使用する場面がそんなにないと思えたもの(私にとっては。勿論、用途によって要不要の尺度は異なると考えますが)は省略しました。フロー制御などの高度なsedの使用法についても触れていません。基本をおさえることを目的としたからです。
ほおおお。sedの花嫁はハネムーンに旅だってしまいました。見送る私たちは小さく安堵のため息をついて次の場所に向かわなければなりません。ふむむう。来週には出発できるのかしらん。では再会を期して。またまた~にゃ。
ごぶさたしておりました。sed拾遺物語こと補遺です。
補遺1:お取り置きしましょうか?~パターンスペースとホールドスペース
sedは行単位でコマンドを実行するものです。それはどおゆうことかといいますと。56億7千万行のテキストファイルがあったとしても。その全部をどか~んと一気に扱うわけではないということです。森の小人さんのように地道に1行1行、取り込んではコマンドを実行しているわけなんですね。その取り込み先こと、小人さんの作業場のことをパターンスペースといいます。パターンスペースはテンポラリバッファらしいですがアモールバッファ(c)平沢進とどう違うんでしょおか。うむむ。
冗談はさておき。sedのもうひとつのバッファにホールドスペースというものがあります。これは小人さんの倉庫です。パターンスペースとホールドスペース間でデータを移動できるのがsedの特徴なのでした。
つまり。先にパターンスペースで下味をつけておいた材料をホールドスペースにいったん保管しておいて。別の材料の準備がととのい次第、もう一度パターンスペースに戻して、別の材料とまぜまぜするなどということができるのですね。ホールドスペースは倉庫というより待避所といった方がいいかもしれない。
こおゆうホールドスペースに関係するコマンドには、以下のものがあります。
h , H
待避コマンド。パターンスペースの内容をホールドスペースにもっ てゆく。 hはそれまでのホールドスペースの内容に上書き、Hはその下に追加する 。
g , G
復帰コマンド。ホールドスペースの内容をパターンスペースに戻す 。gは上書き、Gは追加。
x
交換コマンド。パターンスペースとホールドスペースの中身をチェ ンジする。
ある条件をもつ行の順番を入れ替えたり、段落ごとに操作をしたりする場合に使えるコマンドであります。例ですか。はい。
あ。例の前に。複数のコマンドを使うときは、スクリプトファイルの中を
あどれす{
こまんどお
別のこまんどお
もういっちょこまんどお
}
という形にしますので念のため。
例文として。次の2行からなるファイルがあるとします。
いざスープの水面に帆を立てて
道のひびから花が咲く
この2行をひっくり返すスクリプトは。1行目をホールドスペースに待避して、2行目(=最終行)の後ろでパターンスペースに戻せという内容になります。
1{
h
d
}
${
G
}
という具合(注:$は正規表現ではなく、最終行を表す)。結果は。
道のひびから花が咲く
いざスープの水面に帆を立てて
注意しなくてはならないのはhとdコマンド。もしhでなくHにした場合、それまでのホールドスペースの下に追加されるので。ホールドスペースが空であったら、その空行の下に追加されてしまうのです。つまりよけいな空行が「いざ~」の上についちゃうわけ。
また、hでホールドスペースに1行目を待避しても、パターンスペースには残っているので (カットするのではなくコピーしているので) dコマンドでいったんパターンスペースから1行目を削除しています。
補遺2:祈るようにsedを探して駆けてたこと~参考文献
「sedは日暮れて」を書く上で参考にしたのは、
Dale Dougherty著、福崎俊博訳『sed & awk プログラミング』(アスキー出版局)
です。筆者の愛が伝わってくるよいご本であります(^0^)。その他にMS-DOSの古い256倍本も一部参考にしました。
インターネット上では、NiftyServe FMCN フォーラムで行われていたSED教室の内容がWebあるいはftpでgetできます。
SEDLEC Release 1.11←95年改訂の最新版(Web)
SEDLEC Release 1.00←92年のオリジナル版(ftp。docファイル)
「sedは日暮れて」はsコマンド中心の内容でしたが、こちらは別コマンドを含んだやや難しめの内容だと思います。
NIFTY Serveでは、他にFWORK(在宅ワークフォーラム)でも在宅翻訳がらみで、sedの参考文献の話が出ていたようです。
うんとごぶさたしておりました。sedさらに補遺です。
さらに楽ちんな検索・置換手段
キャラクタベースでsedを覚えておくと何かと便利なことが多いのですが、あっという間に世の中はぐいぐいGUI化されており、DOSやUNIXのコマンドベースでお仕事されない方のほうがいまや圧倒的に多いと思われます。というわけで、
正規表現による検索・置換ができ、Windows環境で使える
便利アプリについても少しだけご紹介しておきますね。
■Oceansoftさんのファイルの検索・一括置換 Grep and Replace(フリーウェア)
同じディレクトリの中の複数ファイルを一括置換してくれるので便利です。.bakファイルも自動作成してくれるので、正規表現の記述に失敗したとしても、リカバリーが簡単。超おすすめです。
http://hp.vector.co.jp/authors/VA008174/soft/greprplc.htm
■Kats FactoryさんのMultiRep(フリーウェア)
複数ファイルを一括置換してくれます。さらに画期的なのは、一行ではなく、複数行を置換してくれるということ。これは便利なりよ。要VBランタイム。ダウンロードは、ページの真中あたりの「ソフトの解説・ダウンロード」のメニューから「MultiRep」を選んでください。
http://www.geocities.co.jp/SiliconValley-PaloAlto/8519/freew.html
■秀まるおさんの秀丸エディタ (シェアウェア、4000円)
改めて紹介するまでもない、有名エディタ。Win上で動くエディタは数多くあれど、1つを選べと言ったらやっぱりこれになりますね。正規表現対応。
http://hidemaru.xaxon.co.jp/software/hidemaru.html
他にも、
・Marboさんのみやぐれっぷ(フリーウェア。「Software」のコーナーからどうぞ)
・arakenさんのQGREP(フリーウェア、検索のみ)
などがあります。上手に使い分けて楽しい検索置換ライフを!
よく寄せられる質問とそれに対するお答えをまとめてみました。わかる範囲で全力投球でお答えしていますが、力不足の場合はごめんなさい。
--------------------------------------------------------------------------------
Q1.sed "s/aaaa/bbbb/g" で、aaaaやbbbbが「/usr/local/etc/」など、「/」を多用する場合、エスケープする(=「\」or 「バックスラッシュ」を使う)のが大変なのだが?[00.06.30]
A1.デリミタ(/)は、別の記号に変えることができます※1。
つまり、sed "s/aaaa/bbbb/g"の代わりに、sed "s#aaaa#bbbb#g"と書いてもOKなんです。aaaaやbbbbの内容によって使い分けるのがよいと思います。awkも同じだと思います。
※1…どんな記号でもよい、というわけではないらしい。たとえば、Linux上で、sedのデリミタに「!」を使うと、bashに叱られます。しくしく。
--------------------------------------------------------------------------------
Q2.○○でプログラミングするには、どんな言語を使うとよいですか?(○○は変数。いろんな分野が入ると考えてください)[00.06.30]
A2.うっわー。そんなに難しいこと私のようなへっぽこスクリプターに聞かれてもわからないです。○○に詳しい方や専門家に聞いてみるか、○○に関連するメーリングリストやニューズグループ、掲示板などを見つけて質問を投げてみてくださいね。
--------------------------------------------------------------------------------
Q3.他に正規表現の例はない?[02.06.05]
A3. 詳しく説明されているサイトはたくさんあります。検索してみてください。私のおすすめは、Perlになってしまいますが、大崎さんのサイトにある「Perl正規表現雑技」です。また、木村さんの「正規表現メモ」は、grep/sed/awk/perlなどのツールで使用できるメタキャラクタの違いをまとめてらっしゃいます。ぶらぼぉです!さらに正規表現について深く学びたい方は、書籍を購入するのも手だと思います(手元にリファレンスとして置いておけますし)。
[参考]
Perl正規表現雑技
正規表現メモ
『詳説 正規表現』(書籍) (Jeffrey E.F.Friedl著,歌代和正監訳,春遍雀来,鈴木武生共訳,オライリージャパン)
佐藤ちみもと名乗って10年以上が過ぎました。
Web関連の仕事をして10年以上。おかげさまでものすごくいい年になっているのですが、まだ落ち着いていません。困ったな。いや全然困ってないけど。今のところ、情報通信業の会社にお世話になっています。
猫と本と計算(整数限定)と編み物と機械式計算機とたたら製鉄が好きです。
ミクシィだとhttp://mixi.jp/show_friend.pl?id=1910にいます。
1995年、twics.com時代からずーっと続けているサイトです。若気の至りやいちびり、すべったギャグと誤解・理解などから成り立っています。
【今回のリニューアルについて】
フルMTで全サイトを作ってみたらどうなるかテストです。MTは以前chimimo.com/mt/で2.xを使っていましたが。3.31入れてみたら格段に使いやすくなっているのに感心。
【各カテゴリーについて】
・sedは日暮れて…sedカテゴリーに置いている記事です。UNIXのsedについて初心者視点から解説していました。今でも見に来られる方がいらっしゃるので残しています。今はsedはあんまり使わなくなっているのでうとくなっています。
・profile…読んで字のごとくプロフィールカテゴリーです。知人に会うたびに所属が変わっていると言われるのが結構楽しいですが。その反面、よく知らない人からは「なにものかわからない=軽く見られる」のでよくへこんでいます。
・めいじてき…身辺雑記をこのカテゴリーに置きます。ジャンルとして固まってきたら別カテゴリーに移しましょう。
三省堂書店神田本店は本日、法定設備点検のためお休みです。
三省堂が開いていないと、神保町を歩くのもつまらないのです。まるでご飯の入っていないお弁当のよう。神保町には、他にもたくさん書店・古書店はありますが、みんな自分にとってはおかずなのですね。存在していてほしいし、定期的に立ち寄って買い物もするけれど、毎日は行かない。アジア文庫なんか大好きだけれど、毎日通うときっと飽きちゃうだろうなあ。
それでも三省堂にだけは毎日行く。毎回滞在時間が長いわけでもないけれど、とにかく行く。1階新刊エリアだけは絶対に覗く。飽きない。まるで毎日白飯食べ続けても決して飽きないように。
お弁当と言えば、2ちゃんねるにひたすら毎日つくったお弁当の献立を書き続けているだけの長寿スレがあり、見ているだけで楽しく、とても好きなわけです。たまに料理できない(らしい)ヤツがめちゃくちゃなメニューを書いて荒らしに来ますが、架空のメニューを考えるのは思いのほか難しいようで、荒らしを続けることができない様子。すっとんきょうな素材や味の組み合わせって通常の組み合わせのバラエティーを知っているから思いつけるんですね。
三省堂には、ゆるぎなきゼロ地点として、甘くも辛くもないニュートラルな非武装中立地帯として、神保町の燈台守として存在していてほしいわけですよ。
いや、『イリアス』を昨日悩まずに買っとけばよかったとちょっと後悔しているだけですが。うう。
今年5月から12月まで、工学院主催の社会人対象セキュアシステム設計技術者の育成プログラムに参加しています。3期生です。で、毎週土曜がまるまるつぶされたり、平日こなさなければならない宿題があったりしてしんどいことも多いのですが、これがおもしろいのですよ!
正直、セキュリティターゲットやPKIの技術など、狭義のセキュリティについてだけ学ぶのならば、割とつまんなかったんではないかと思います。「こうなっているんだから覚えとけ」だと興味がわきにくいですよね。
がしかし、このプログラムは情報について体系的に学ぶという目的もあり、これが文系出身の自分のような身にとっては、そうだったのか、と膝を打つことも多く、おもしろいのです。暗号理論など、仕組みを知らないと知るとではものすごい違いがありまして、「こんなにおもしろかったのか!」「なんで今まで知らなかったんだろう」「なんでも自分の専門外だからといって適当に流すもんじゃないなあ」と目から鱗がぽろぽろり。
さらに知らないことだけじゃなく、ユーザインタフェースやユーザビリティの話など、自分が実践で使っていることをフィードバックできる場もあり、これもまたわくわくしますね。
プロジェクトベースラーニングで班として活動していたりもいまして、参加メンバーが多彩なところも良いと思います。仕事で硬直している頭がほぐされる感じです。
ご興味のある方は、来年が最終回ですので、受講されてみるのはいかがでしょうか(宿題量が結構あるので、激務の方は大変だと思いますが…)。
バリ島でたまたま聴いたのですが、4音階の竹ガムランのアンサンブルであるジェゴグという音楽がとてもすばらしいのです(普通のガムランは5音階)。バリ島でも一部でしか育たないという、でっかい竹を使った超低音がうねるうねる。うおお。低音はやっぱ神様の音ですね(チベット仏教音楽でも超低音ラッパは神様表現でございました)。ジェゴグの4音はそれぞれ違う神を表現しているのだそうです。
CDを買ってきて聴きこんでおります。
来日公演もやっているスアールアグン
http://www.suar-agung.com/
http://www.suar-agung.com/jegog.html
RetroEngineBETA.png)
とりいそぎ作ってみました。というわけでセキュリティ宿題に戻ります。
ただいま脅威の洗い出し中。うーんうーん。
Web 2.0 V2 BETA
http://msig.info/web2.php
元ネタ:idea*idea 「簡単に2.0っぽいロゴがつくれるメーカー」
http://www.ideaxidea.com/archives/2006/08/20_3.html
米国に日本アニメはそのまま輸入されたことはなく、改悪の連続であったと。
あとアカデミズムからの深読みによる不思議な解釈が笑えました。押井守、米国からも深読みされています。いや深読みしたくなるほど魅力的ということでありますね。
講談社ムック「セオリー」シリーズ第三弾。サービスとはなにか、客の心をつかむとはどういうことか、についてよってたかっていろんな人が語っています。事例はB2C中心ですが、B2Bにも応用効きそう。セブン・イレブン鈴木社長の『サービスは心理戦である』がおもしろかったです。ビジネス書の単行本、あたりはずれあるのにどれもおおよそ1500円程度はしちゃいますよね…。それに比べ、これだけ内容充実していて800円は安いと思いました。
※mixiの方で土曜通っているセキュリティ関連の授業内容について日記書いていたのですが、こちらに移動することにします。
午前中は「情報通信サービス品質」前編。QoSやらSLAの話。って本業で扱っている分野なので、「SLAが何を保証しているか」程度は知っていたのですが、ポアソン分布・アーラン分布・待ち行列理論(トラヒック理論)など数式がいきなり多数登場でむきーっ。何がつらいって、脳みそ経年劣化で短期記憶がかなりやられていて、数行前に登場したみゅーやでるたなどが何を指しているか途中で忘れてしまうところだみゅー。しかし、トイレやATMのフォーク並びは、理にかなっているのだと理解しました(ランダム到着を処理する際、指数分布処理時間の方式で、1)複数装置を独立に使う、2)複数装置を共通に使う、3)高速装置1台でまかなう、の三つを比較するならば、装置使用率が等しい場合、3->2->1の順で速くなります。通常の3倍速以上で出金するATMや目にも留まらぬ速さでトイレをすませられる技術などが登場しない限り、フォーク並びが良いですね)。
午後は「公的個人認証サービスとPKI基盤」最終回。実習で、VMWARE上でJNSA相互運用テストスィートを使い(参考:Challenge PKI Project)、認証局をつくって証明書を発行しました。若干、「これって、カラムを間違いがないように注意深く埋めるのだけがポイントなのでは…」というような気がしたですが、信頼点からちゃんと認証パスが作れて楽しかったです。
講師の方に質問してみたのですが、本気でPKIをつくるためには、証明書生成についてはオープンソースツールでまかなえるものの、CAの鍵を管理するHSM(Hardware Security Module)の方にちょっとお金がかかってしまうんだそうな。米国政府調達基準であるFIPS 140-1 レベル3認定が必要だそうですが。ちなみに、レベル4認定だと、環境変化(=盗難)などを察知して装置が自殺したりするんだそうですよ。わー。スパイ大作戦みたい。
私は流行ものが好きで、誰より先に試したいタイプ。
でも、ヨガについては、ブームになっているのを横目に見つつ(ずいぶん長いですよねヨガブーム)、乗り遅れてしまったくやしさに知らんぷりしておりました。でもまあ、そう言わずに体に良いんだったらいっぺんやってみましょうよ。というわけで今さらながらチャレンジしてきましたよ!
行ってきたのは高温多湿環境の中で行うホットヨガ。汗を大量にかくことで新陳代謝を活発にするのだそう。デトックス効果もあるそうです。サウナは大変苦手なのですが、ホットヨガの場合は、室温をそこまでは上げないということなのでトライしてみました。
→ホットヨガサロンラビエのトライアルレッスンです。
http://hotyoga-lubie.com/
感想。
・いまだかつて体験したことがないくらい大量の汗が出る。びっくりしました。マラソンした後でもこんなに汗かかないよ…。
・ひとつひとつのポーズはストレッチ系で、負荷は高くないですし、静かに行うのですが、連続して行うと結構な運動量。なめてはいかん。
・そのせいか、途中で立ちくらみっぽくなってしまいあぶないあぶない(注:体調が悪くなったら途中退室可です)。
・汗を大量にかいたおかげか、肌がつるつる気味?(気のせいかも)
60分コース1回受けただけでは劇的な効果は望めないんでしょうね。でも、終わったあと、シャワーを浴びるときの爽快感はたまりません。そして、続けていくと、普段使っていない部位の筋肉が鍛えられるだろうとも感じました。背中がのびている感じです。というわけで、もう1回トライアルを受けられるので、それを受けてみて継続的に通うかどうか判断しようと思っています。
老化の階段昇るー君はまだシンデレラさ。いや、最近、話し言葉がわやなんです。「あれ」「これ」「それ」「どれ」ばかり連発で自分でも何を言っているのかわかりません。うう。こうなったら以心電信ー言葉よりもはやーく♪をめざすべきか(例が古いのも老化現象!)。
そういえば、今日三省堂書店本店前で大声で電話していたおじさまがまさしく「あれそうしといてくれる?」「あいつにそれああしろっていっとくから」のこそあど言葉連発で完全に話が通じていたのです。そういう境地を目指そうということで。
なのでもしおいらがあなたをにらんでいてもそれ、ガンつけじゃないですから。サイコキネッシステレパシー超能力をつかうときですから!
積ん読→だいにっほん、おんたこめいわく史 。「言語にとってブスとは何か」この言葉だけで惚れた。笙野頼子イカしている。
でも、本日自分はニール・ケアリーシリーズ最終巻で手一杯なのでした(『砂漠で溺れるわけにはいかない』)。 ニールの活躍もう読めないのね(涙)…。
プレゼンテーション資料をよく受け取る立場にいるのですが、PowerPointのファイルサイズが異様に大きい場合があって苦慮します(例:Wikiに添付しようとしたときに添付ファイルサイズ上限にひっかかってしょぼーん。pdfにしてもまだ大きくてしょぼーん)。
なん