ラベル 変数 の投稿を表示しています。 すべての投稿を表示
ラベル 変数 の投稿を表示しています。 すべての投稿を表示

2009年4月23日木曜日

awk No.005(変数で条件指定)

awk は、awk の中で変数を持っていますので、シェル変数の持ち込み方(使い方)に工夫が必要です。-v オプションで -v VAR=${VAR} とする方法とは別に、条件指定(/ で括った場合)でもひと癖あります。

$ VAR1="abc"
$ awk '/$VAR1/ {print}' a.dat
上記のようにすると、$VAR1 という文字列を検索して、変数 VAR1 の内容"abc"で検索をしてくれません。そこで、以下のように記述することで、変数 VAR1 の内容"abc"で検索してくれます。
$ VAR1="abc"
$ awk '/'$VAR1'/ {print}' a.dat
シングルクォートで囲ってあげることで、シェル変数として認識してくれます。

2008年6月14日土曜日

シェルで配列を使う No.001

シェルスクリプトでも、一般的なプログラミング言語と同様に配列変数を使えます。

使い方は簡単で、値を複数代入することで、配列変数となります。ただし、この簡単さ故に、規則的にコーディングしないと、配列なのかどうかわからなくなってしまったりします。

  1. 初期化
    必須というわけではないですが、一応行っておいたほうが無難でしょう。
    HOGE=()
  2. 初期化(代入)
    ()で初期化すると値は何も入っていない状態ですが、値を代入しながら初期化することも可能です。(括弧で括って、スペースで区切ります。)
    HOGE=(a 1 bcd 123)
  3. 参照(1)
    代入してある値を参照する方法です。

    一つ一つ値を参照
    echo ${HOGE[0]} ${HOGE[1]} ${HOGE[2]}
    a 1 bcd
    まとめて参照
    echo ${HOGE[*]}
    a 1 bcd 123
  4. 参照(2)
    ちょっと変わった参照方法です。

    文字数を参照 (変数名の先頭に#をつけて、要素を指定します。)
    echo ${#HOGE[2]}
    3
    要素数を参照 (変数名の先頭に#をつけて、全要素‘*’を指定します。)
    echo ${#HOGE[*]}
    4
入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界
入門UNIXシェルプログラミング シェルの基礎から学ぶUNIXの世界

図解でわかるLinuxシェルスクリプト・正規表現
図解でわかるLinuxシェルスクリプト・正規表現