始めて awk のコードを書いた。とりあえずはこんなのから。
df -h | egrep '^Filesystem|home' \ | awk '{ print $2, "\t", $3, "\t", $4, "\t", $5 }'
実に頭悪いコードだ。でもいいのさ、結果が出れば……
いまさら ruby 1.1c9 をコンパイル。うわっ、エラー出まくり。なぜか strdup を extern 宣言してるとパースエラーになるようだ。ちょっと試してみたところ、-O2 なしだとならない。-O2 -E を見てみたら問題が発覚。strdup がマクロで memcpy に展開されてた〜。昔は問題になってなさそうなのは、その当時の gcc は strdup をマクロにしなかったということかな?
拡張モジュールのコンパイルも失敗しまくってるな。いいや、1.1c9 で curses や tk なんて使わんし。
うお、--program-suffix も効いてない……。面倒だから ruby 本体だけ手でインストールだ。
しかし懐かしいなあ。ぼくが最初に使った ruby は 1.1b9 でした。たぶん。
うわ、ちげえよ。#include なしでは展開されないんだからgccがやってるはずない。 これだ。(string.h)
#if defined __GNUC__ && __GNUC__ >= 2 # if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && !defined __cplusplus /* When using GNU CC we provide some optimized versions of selected functions from this header. There are two kinds of optimizations:
egrepは無駄です。,の有無も結構重要
df -h | awk '/^Filesystem|home/{ print $2 "\t" $3 "\t" $4 "\t" $5 }'
をを なるほど、ありがとうございます。
カンマがあると空白がはさまるのですね。