パスワードを忘れた? アカウント作成
7205676 journal
プログラミング

iidaの日記: (1==1)!=1??? 2

日記 by iida

AWKでスクリプトを組んだ。各行必ず実行してほしい処理を

1       { prev1 = $1; }

と書いたのだが、Solarisだけうまくいかず

awk: syntax error near line 1
awk: bailing out near line 1

になってしまう。

1==1    { prev1 = $1; }

と書くとよいようだ。たぶん、真になる条件式ならよいが、即値の数値はダメよ、と言いたいのだろう。

この議論は、iida (8060)によって テキとトモのテキ禁止として作成されたが、今となっては 新たにコメントを付けることはできません。
  • 「即値の数値がダメ」なのではなく、「論理値にしろ」ということだった。
    --
    iida
  • by doda (31157) on 2013年01月24日 15時27分 (#2312049) 日記

    Solaris の /usr/bin/awk は古い awk なので、gawk や他の OS の awk とは色々と動作が違う部分がありますね。
    通常は /usr/bin/nawk や /usr/xpg4/bin/awk を使う方がいいと思います。

    AWKでスクリプトを組んだ。各行必ず実行してほしい処理を

    1       { prev1 = $1; }

    常に実行してほしい処理ならば、

    { prev1 = $1; }

    というようにパターンを省略すればいいです。

typodupeerror

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

読み込み中...