0

私は以下のようなほぼ同じコードを使用するsriptを持っています:

almsource=`awk -F# '{print $5}' test.csv`
for var in ${almsource[@]}
do
    ...
done

almSev=`awk -F# '{print $3}' test.csv`
for var in ${almSev[@]}
do
    ...
done

...の値を除いて、ほとんどのコードは同じですawk -F# '{print $3}'awk -F# '{print $3}' as varaible. Below is my function, but it seems そして、 awk -F#'{print $ {$ varNum}}'のフィールド値が正しくないため、関数を記述したいと思い ます。

getFieldGrp()
{
#getFieldGrp <fieldVar> 
varNum=$1
almfield=`awk -F# '{print ${$varNum}}' test.csv`
...
done

}

誰かがそれを手伝ってくれますか?

どうもありがとう!

4

2 に答える 2

2

これには awk は必要ありません

getFieldGrp() { cut -d '#' -f $1 test.csv; }

for word in $(getFieldGrp 5); do ...
于 2012-11-22T11:59:27.663 に答える
2

最初にシェル変数を渡し、awk配列を使用してすべての値を保持する必要があります。これを試して:

array=($(awk -F "#" -v num="$1" '{ print $num }' test.csv))
于 2012-11-22T08:05:45.287 に答える