既に第3題で盛り上がっていますが、早過ぎ。
しかもエキスパートが速攻で出したら、abcじゃないぞっ。(^_^;
%%%%
というわけで、2題目のsed版です。
日本語対応のsedでは意図したようには動きませんので、未対応状態の
sedに漢字コードがEUC-JPのファイルを入力するのがお勧めです。
sedは変数が2つ、しかも片方は主に保存用な感じの言語(^_^)です。
よって唯一の変数に文字列を全部連結して入力しながら、これも
ほぼ唯一の操作である置換を駆使してまとめています。そして最終的に
1項目ごとに取り出しながら無理矢理フォーマットして出力してます。
なおSolarisやHP-UXのSYSV系sedのバグ(?)を回避するためのコードが
入っているので少し回り道してます。
-----^ index.sed ( date:02-05-04 time:16:04:34 ) ---< cut here
1s/$/\
/
s/::*/:&/g
s/;/ : /g
G
s/\n/;/g
s/^\([0-9]*\) \([^;][^;]*;\)\(.*;[0-9,]*\) \2/\3,\1 \2/
h
${
s/^/;/
s/;;$/;/
h
t nop
:nop
s/.*;\([0-9,]*\) \([^;]*\);$/\2 \1/
t print
b end
: print
s/ : /;/g
s/:\(:*\)/\1/g
s/^\(....................\).* \([0-9,]*\)$/\1 ... \2/
p
g
s/;[^;]*;$/;/
h
t nop
:end
d
}
d
-----$ index.sed ( lines:30 words:47 size:431 ) ----< cut here
(* SEKI Masatoshi / zazel@..."jp" *)
(* Would you hold my hand? Softly, let's linger. *)