Hatena::ブログ(Diary)

趣味的にっき このページをアンテナに追加 RSSフィード

2005-03-15

[] はてなダイアリーへの要望: テキストブロック内の*で始まる行の最新タイトル表示 21:12  はてなダイアリーへの要望: テキストブロック内の*で始まる行の最新タイトル表示を含むブックマーク  はてなダイアリーへの要望: テキストブロック内の*で始まる行の最新タイトル表示のブックマークコメント

「入力した内容がそのまま表示される整形済みテキストブロック」内の*で始まる行を、最新タイトルに表示しないようにして欲しい。うーん、sectionモジュールのパーズ時のバグ(or 仕様)かなー。

例:

* この行を最新タイトルに表示しないようにして欲しい。

いわたいわた 2005/03/15 09:19 ども。sed, awk抜きで 1 行はつらいですね(ruby抜きならこれも不可ですよね)。それにスペースを含むファイルの扱いとか、findを使う場合コマンドライン文字列の長さの限界(*BSDなら65535でしたっけ)を越えたらヤバいのでxargsで切ったりしなければいけないとかで難しいです。うーむ。

いわたいわた 2005/03/15 10:13 安全性を考えるならば、やっぱりファイルのリストはいったん保存したほうがいいと思います。
1 行じゃやっぱり無理ですねえ。
ここまでで降参です。
randomfile()
{
if [ ”$1” = ”” ]; then exit 1; fi

local prog=`basename $0`
local rlist=`mktemp /tmp/${prog}.XXXXXX` || { echo ”$0: mktemp failed” 1>&2; exit 1; }
trap ’rm -f $rlist; exit 1’ 1 2 15

find ”$1” -type f > $rlist
local len=`wc -l $rlist | rs 0 1 | head -1`
tail -`jot -r 1 1 $len` $rlist | head -1

rm -f $rlist
}

たなかしんやたなかしんや 2005/03/15 20:58 > ども。sed, awk抜きで 1 行はつらいですね(ruby抜きならこれも不可ですよね)。
僕は/usr/binはありかなと思います(awk、sedはOKでしょう。jotよりはポータブルな気がします)。
とはいいつつも、いわたさんのおっしゃるように、やっぱりfindをからめた時点で「コマンドライン引数」、「標準入力」は危険すぎると思いました。やっぱりテンポラリファイルですかねぇ。うーむ。コメントどうもありがとうございました。

トラックバック - http://d.hatena.ne.jp/ha-tan/20050315/1110888730