トップ «前の日記(06/25/2003) 最新 次の日記(06/27/2003)» 編集

本 日 の h o g e

hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。

更新情報の取得には rdflirs を使ってもらえると嬉しいです.


06/26/2003 Nightwish [長年日記]

tDiary 245日目

[日記] Nightwish

FSSを読むときのBGMはNightwishに限る.何かめっちゃ雰囲気合ってるし.

[日記] うひゃ

またも捕捉されてた模様.恐縮です.

[日記] そういや

さっさとリンク復活させんとな.XHTMLに書き直すのが面倒で全く手を付けてなかった.静的なものを書くのはなんでこうもかったるいのか.

追記:つーわけでリンク暫定復活.

[日記] 蚊

今年初虫さされ.かゆー.

[ニュース] ローソンの顧客情報漏洩

この手のは尽きんなぁ.

[ソフト] 忍者修行

すごいネーミングセンスだな.

[ニュース] SCOがIBM提訴を決めた本当の理由

しかしIBMは「ライセンスの取消は無効」と言ってるだけで,「流用なんかしてない」とは言ってないんだよね.

まぁ何と言うか,とりあえずSCOは該当箇所を提示しろ,そうすりゃ修正できるっしょ.

議論のしかた

うーむ確かに.

Snortにリアルタイム警告を実装する(3/3)

syslog-ng と Stunnel を併せて使う.

[Gentoo] 各デーモンのプライオリティ

あーこれ便利かも.

[Bash][Tips] 正規表現とか

実は [1-5] とか {hoge,foo} とかってのは正規表現の部類に入る. Bash とか各コマンドで使える正規表現には,多少の差こそあれだいたいは似通っている.sedgrep を例に見ると,そこまで違うものでもない.ただし Perl で使える正規表現は別で,拡張された部分がかなり多いので GNU コマンドで使えないものが結構あるので注意.例えば最短マッチ(+? とか *?とか)なんかは多くの GNU コマンドで使えない.

正規表現についてはモノを覚えないとどうしようもない部分が結構あるので各記号の意味については省略.注意点としては,Perl とかみたいに賢くないのでなかなか思った通りにマッチング処理をしてくれないことがあるところ.例えば「直前の文字の1回以上の繰り返し」を意味する + があるけど,\+ という風にエスケープさせなければ機能してくれないことがある.同じように,終端を表す $ 記号があるけど,これは変数と区別するためか \$ とエスケープさせることが推奨されてるらしい(エスケープしなくても一応動作はするけど).ということでエスケープが必要な記号を列挙すると,こんな感じになる.

  • \$
  • \(
  • \)
  • \{
  • \}
  • \?
  • \+
  • \|
  • \<
  • \>
  • \`
  • \'

コマンドによってはもっとあったり,逆にエスケープしなくても良いものがあるけど,まぁここでは grepsed ってことで.あ,ちなみに grep とか find では,正規表現を使う場合は引数をクォートしなければならないことに注意.

あと,意外と使われてない正規表現の記号(?)として,[[::]] で表せるものがある.例えば [[:digit:]] は数字1文字,つまり [0-9] を表す.

  • digit … 数字
  • blank … 空白文字全て(タブとか含む)
  • alpha … アルファベット
  • lower … 小文字
  • upper … 大文字
  • graph … 空白とタブ以外
  • cntrl … コントロールシーケンス
  • space … 空白,タブ,改ページ
  • alnum … アルファベットと数字
  • xdigit … 16進数字

…他にもなんかあった気がするけど忘れた.

bash$ echo -e "hoge\t123     HOGE\t,./\\]:;[@\^"
hoge 123 HOGE ,./\]:;[@\^

bash$ echo -e "hoge\t123 HOGE\t,./\\]:;[@\^" | sed -e "s/[[:alpha:]]//g"
123 ,./\]:;[@\^

bash$ echo -e "hoge\t123 HOGE\t,./\\]:;[@\^" | sed -e "s/[[:alnum:]]//g"
,./\]:;[@\^

bash$ echo -e "hoge\t123 HOGE\t,./\\]:;[@\^" | sed -e "s/[[:digit:]]//g"
hoge HOGE ,./\]:;[@\^

bash$ echo -e "hoge\t123 HOGE\t,./\\]:;[@\^" | sed -e "s/[[:blank:]]//g"
hoge123HOGE,./\]:;[@\^

bash$ echo -e "hoge\t123 HOGE\t,./\\]:;[@\^" | sed -e "s/[[:upper:]]//g"
hoge 123 ,./\]:;[@\^

bash$ echo -e "hoge\t123 HOGE\t,./\\]:;[@\^" | sed -e "s/[[:lower:]]//g"
123 HOGE ,./\]:;[@\^

こんな感じ.…分かりにくいか.

本日のツッコミ(全5件) [ツッコミを入れる]
k (06/26/2003 16:23)

sedコマンドってroot権限のコマンドではないの???

atzm (06/26/2003 17:22)

sedはただ中間に噛ませて整形するコマンド.rootとは関係ないですぞ.

usata (06/26/2003 18:19)

sudo のことですかね?

k (06/26/2003 19:08)

???
いえ、sedコマンドをユーザーで使っても使えなかったのです。
なのでrootになって使ってみたらうまく行ったので、もしかしてroot権限のコマンドなのかな、と。

atzm (06/26/2003 21:12)

expressionが間違っていたという説が濃厚かと.rootしか読めないファイルならエラー出るだろうし.