AWK: シェル変数を awk に渡す

AWK: シェル変数を awk に渡す

合格しようとしています。変えるシェルスクリプトからテーブルのパターン認識サブセットまでの引数の数。これまでに試したことは次のとおりです。

ファイル "infile":

    ID,GROUP
    1,GROUP2    
    2,GROUP2    
    3,GROUP4    
    4,GROUP4    
    5,GROUP5    
    6,GROUP5    
    7,GROUP23   
    8,GROUP23   
    9,GROUP23   

ファイルのサブセット.sh:

    #!/bin/sh
    rm -f outfile_$week

    week = $1
    shift

    for TOKEN in "$@"
    do

    echo "adding records for" $TOKEN

    awk -F "," -v group = $TOKEN '{ if(FNR > 2 && $2 ~/group/){print $0} }' infile >> outfile_$week
    done

また、group = "$TOKEN"、"group = $TOKEN"を試してから、両方とも一重引用符で試しました。私は次のように送信します。

    sh subset.sh 061314 GROUP2 GROUP23

エラーメッセージはほとんど表示されません。

    Usage: awk [-F fs][-v Assignment][-f Progfile|Program][Assignment|File] ...

助けてくれてありがとう。ありがとうございます!

編集:私は走ってみました

    awk -F "," -v group ="GROUP1" '{ if(FNR > 2 && $2 ~/group/){print $0} }' infile

役に立たない...(上記と同じエラー)これが起こる理由を知っている人はいますか?

ベストアンサー1

次のように書く必要があります。

-v group="$TOKEN"

代わり-v group = $TOKENに構文エラーが発生しますawk

おすすめ記事