[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: install-info



uebayasi@soum.co.jp wrote:

 > Info のエントリ名に空白が入っていると install-info がそのエントリを 
 > --remove できません。install-info のバグなんですが、回避策としてエント
 > リ名中の空白を消し('-' で置き換え)たいのです。具体的には
 >   * CC Mode: (cc-mode).   Emacs mode for editing C, C++, Objective-C,
 >                           Java, Pike, and IDL code.
 > を
 >   * CC-Mode: (cc-mode).   Emacs mode for editing C, C++, Objective-C,
 >                           Java, Pike, and IDL code.
 > などとしたいのです。

perlとかrubyは禁止ですよね。

gawkで、

awk '
	/^[ \t]*\*/ {
		n = split($0, a, /:/)
		match(a[1], /^[ \t]*\*[ \t]*/)
		h = substr(a[1], RSTART, RLENGTH)
		b = substr(a[1], RSTART + RLENGTH)
		gsub(" ", "-", b)
		printf("%s%s", h, b)
		for (i = 2; i <= n; i++) {
			printf(":%s", a[i])
		}
	}
	!/^[ \t]*\*/ {print $0}
'

とか考えてみました。


失敗作
sed -e 's/^\([ \t]*\*[ \t]*\)\([^:]*\)\(:.*\)/a1="\1"; a2="\2"; a3="\3"; echo "\$a1\`echo \$a2|sed -e "s\/ \/-\/g"`\$a3"; /'|sh

sakamoto