32nd Diary

トップ | 最新 | 過去の日記 | もっと過去の日記

2006年
2月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28
めーるあどれす
ruby -rbase64 -e'puts Base64.decode64 %q(dGFrYW5vMzJAZ21haWwuY29t)'



2006-02-12 (Sunday) [長年日記]

[Hack][UNIX][LL] ファイルの挿入

via Roccoの日記

プリプロセッサライクに#INCLUDE HOGEの部分をファイルHOGEの内容で置換する,というお話です. シェルスクリプトで挑戦してみました.

#!/bin/sh
while read LINE
  do
  FILE="${LINE#'#INCLUDE '}"
  if [ "$FILE" != "$LINE" ] ; then
    cat $FILE
  else
    echo $LINE
  fi
done

うむ.大丈夫そう.

FILE="${LINE#'#INCLUDE '}"

という行が不可思議度高めですが, まぁ許容範囲ではないでしょうか...

[Diary] tDiaryを追っかけ

「本日のリンク元」を大改造 が落ち着いたようなので,追っかけた.

今回の変更点を見る限り, 既存のリンク元は汚れたものとして扱う必要があるみたいだ. これからのリンク元の意味を考えるとあまり躊躇していても 意味がないので,以下のコマンドでばっさり消した.

find . |grep -e '200.....\.tdr' | xargs rm -f

うむ.キレイになった. パフォーマンスもよくなった気がする.

[Univ][Hardware] CF-W2がまた壊れた

Let's Note CF-W2が 修理から帰ってきたばかりだというのに, また不具合が出ました.

なんと,液晶をある角度以上に開くとバックライトが消える!

志村,逆!逆!!

だいたい75度くらいまでなら大丈夫なんですが, それ以上開くと消えます.ぜんぜん画面が見えねぇ. こんなマゾなノートパソコンありえねぇよ.

また修理に出さなくてはならんですな...

[Media] トリノオリンピック

はじまりましたね. 一時期のウインタースポーツの加熱ぶりに比べると 盛り上がりに欠けている気がする.

個人的にはクロカンが好きなんですが, この競技も最近は日本勢の活躍がなく,少しさびしい. ぜひともがんばってもらいたい.

本日のツッコミ(全6件) [ツッコミを入れる]
Rocco (2006-02-12 (Sunday) 21:08)

shell そのものでも挿入ってできてしまうんですね。(思いつきませんでした。)<br>参考になります。

今泉 (2006-02-13 (Monday) 00:18)

#はよいと思う。が、インデントが惜しい。doが気持ち悪い。<br><br>自分でするなら、sedで#INCLUDEならcatに置換し、そうでなければ頭をechoにかな。<br><br>そうそう、行頭が-nだったらどうする?

32 (2006-02-13 (Monday) 02:30)

ギャー,doはifのthenと同じようにwhileと同じ行に書くのが正解ですね.<br>すっかり忘れていましたが,echo -n hogeとなってしまう場合のことも考えると,printf(1)を使って<br> printf '%s\n' "$LINE"<br>とするか,sedを絡めて<br> echo x"$LINE" | sed -e 's/^x//'<br>としたりですかね.<br>いずれにしてもこの行はあまり美しくない...orz<br><br>echo -n "$LINE" ; echo '' ではうまくいきませんでした.

今泉 (2006-02-13 (Monday) 10:47)

あ、こっちもみっけ。<br>せっかくfind使うなら、その中で完結しては? findのexecはパワフルです。<br><br>find . -exec grep -q '200.....\.tdr' \{\} \; -exec rm -f \{\} \;<br><br>こいつでどうだ!

32 (2006-02-13 (Monday) 11:36)

あ,すみません,こちらはボクが横着していました. :)<br>regexというオプションもあるので,<br> find . -regex '200.....\.tdr' -exec rm -f \{\} \;<br>とも書けますね.しかも,FreeBSDのfindにはdeleteオプションというものがあったりするので<br> find . -regex '200.....\.tdr' -delete<br>とも書けて,ほんとうにfindだけで完結できてしまうようです.<br><br>なにはともあれ,このxargsの使い方も空白のファイル名があると困ったことになってしまうので指摘の通りfindだけで完結させるか,xargsを使う場合はfindのprint0オプションを使うなどした方がよさそうです.

今泉 (2006-02-13 (Monday) 16:52)

やばい、-regexも-deleteも知らなかった...。

本日のPingbacks(全0件)