2008-04-18 :-|
_ 朝ったー
0540 起床。
_ [ロンドン・フィルハーモニー管弦楽団][すぎやまこういち][NHK 交響楽団][交響組曲「ドラゴンクエストVI」幻の大地]通勤ったー
交響組曲「ドラゴンクエストVI」幻の大地
作曲はすぎやまこういちさん。演奏はロンドン・フィルハーモニー管弦楽団です。
オーケストラ演奏とオリジナルサウンドトラックが収録されています。DQ4 までの「サウンドストーリー」はゲームの様子を収録したものですが今回のサウンドトラックは曲のみです。ただ、最後の「魔王との対決」だけはバトル中の音( 呪文の効果音等 )も収録されています。
「時の子守唄」が素晴らしいです。すぎやまこういちさんも「時の子守唄」はお気に入りだと言ってました。どこのコンサートで言ってたのか忘れましたが。
ロンドン・フィルハーモニー管弦楽団
B000051TBT
東京都交響楽団
B000FWGT6W
_ 仕事
0830 出勤。
_ 業務を新入社員に紹介するためにスライドを書くなどしている
その相方からメールが来た。
スライドを最後まで作ったので
見てください。
「見てください」がシャクティ・カリンの声で脳内再生されました。megu^2 のおかげです。
_ [Perfume]Perfume の曲を聴いたときの違和感の原因が分かった
「Perfume - Complete Best」を聴いただけですが[ 20060901#p05 ]
- Twitter / Susumu Miwa: Perfumeって歌いらないよな
- Twitter / ugox: @miwarin 歌もインストゥルメントの一部になっているので必要じゃね?あえて不要と言うなら歌詞
これで納得。ugox++
_ [kanou][どう書く?]カノログ - IT的な実務能力を測る15問
どう書く? 的な遊び。
詳細は省くとしてとりあえずどの道具を使えばよさそうかなという当たりだけ考えてみます。マニュアル読んでません。
- ファイルfoo.txtの37567行目から99035行目までを抜き出して、別ファイルbar.txtにする。
sed で行を指定してリダイレクト
- ファイルfoo.txtの中からIPアドレスだけを抜き出して表示する。ただしfoo.txtのなかに重複したIPアドレスが存在するとして、重複は除いて表示すること。
grep で [1-9]{1,3}\. ( 1 回から 3 回ヒットさせる正規表現を書きたい。間違ってるかもしれない ) して sort して uniq してリダイレクト
- ファイルfoo.txtの文字コードをShift JISからUTF-8へ変更する。
nkf
- ファイルfoo.txtの改行コードをCRLFからCRへ変更する。
nkf か tr
tr -d\n か?
- ファイルfoo.txtの中で"hoge"という文字列を含まない行だけ別のファイルbar.txtに出力する。
grep -v hoge
- ディレクトリ/home/foo以下のファイルの中で、文字コードがShift JISのものをすべてEUCJPに変更する。
find /home/foo -type f | while read f; do nkf ごにょごにょ
- ディレクトリ/home/foo以下のファイルの中で、改行コードがCRLFのものをすべてCRに変更する。
find /home/foo -type f | while read f; do nkf ごにょごにょ
- ディレクトリ/home/foo以下の*.logファイルのなかで、ファイルの更新日付が2008/04/15 00:00:00以降のもののリストlist.txtを作成
find /home/foo -name *.log -mtime ナントカ
- 100000行のファイルfoo.txtから、行末のスペースを削除してファイルbar.txtに出力。ただし、スペースがいくつ入っているかは不明。入っていないかもしれない。
sed s/[^.] +$//g; してリダイレクト。
「行末のスペース」はこれじゃダメか?
100000 行というのでスワップしまくる?
- 100000行のファイルfoo.txtから、空行を削除してファイルbar.txtに出力。
sed s/^$//g; してリダイレクト
100000 行というのでスワップしまくる?
- ディレクトリ/home/foo以下に存在する*.htmlファイルそれぞれの中の、"<br>"という文字列をすべて"<br />"に置換。元ファイルは.bakという名前を付けて保存。
find /home/foo -name *.html | while read f; do perl -i -e "s@<br>@<br />@g;"
perl -i じゃないかもしれない。
perl もしくは sed もしくは ruby
- 複数カラムからなるCSVファイルが2つあり(a.csv, b.csv)、それぞれ1カラム目はユニークな文字列が入っている。この二つのファイルから1列目が同じもののみを抽出して、ファイルに出力。この際、 a.csvの2カラム目およびb.csvの3カラム目を抽出してc.csvの2, 3カラム目とする。
awk で FS=, して a.csv を読んで b.csv も同様に読んで acsv[ 0 ] と bcsv[ 0 ] を比較して同じなら acsv[ 1 ] と bcsv[ 2 ] を印字してファイルにリダイレクト。
- 100000行のログファイルfoo.logがある。1行はカンマ区切りになっており、区切られたそれぞれの列には様々な種類の情報が出力されている。いま、1カラム目には"2008/04/13 21:51:39.709322+0900"という形式のタイムスタンプが出力されているとする。このログファイルfoo.logの全ての行のタイムスタンプを一律37分12秒ずらして(戻して)、新しいファイルbar.logとしたい。
ruby 使って 1 行読んで split して [0] を Time にして 37*60+12 を足して bar.log に印字
- 上記ログファイルfoo.logの2カラム目が"INFO"かつ、4カラム目がSQL=XXXXXXXX(SQL文)となっている行のうち、 XXXXXXXXに書かれているSQL文のうちupdate文だけを抽出して別ファイルsql_update_list.txtに出力。
ruby 使って 1 行読んで split して if [1] =~ /INFO/ 且つ if [3] /(SQL=.*)/ ならば if $1 =~ /update/ ならば 出力
- あるログファイルfoo.logを監視して、ファイルサイズが10MB以上になったら現在日付をつけてリネームするなにかを作成
ruby 使って while true の中で FileTest.size( foo.log ) した値が 10MB 以上になったら File.rename( foo.log, Time.now ) する。
追加の問題とか
思いついたもの。
- ファイル foo.log を開いているプロセスを終了させる
- TCP ポート 6667 番を開いているプロセスを終了させる
- foo.html 内にある HTML タグを全て小文字に置換して foo.html に保存する
今までやったことがある問題ですが。
補足
Windows 環境にも grep, find, sort はそれなりに代替手段があります[ 20060308#p03 ]。