0

I want to extract some data from a file and save it in an array, but i don't know how to do it.

In the following I'm extracting some data from /etc/group and save it in another file, after that I print every single item:

awk -F: '/^'$GROUP'/ { gsub(/,/,"\n",$4) ; print $4 }' /etc/group > $FILE

for i in `awk '{ print $0 }' $FILE`
   do
     echo "member: "$i" "
   done 

However, I don't want to extract the data into a file, but into an array.

4

3 に答える 3

4
members=( $(awk -F: '/^'$GROUP':/ { gsub(/,/,"\n",$4) ; print $4 }' /etc/group) )

括弧付きの割り当ては、それ$membersが配列であることを示します。元のawkコマンドはで囲まれ$(...)、コロンが追加されているため、ファイルにとが含まれている場合にgroupgroup1を検索してもgroup、のデータは取得されgroup1ません。もちろん、両方のエントリが必要な場合は、追加したコロンを削除します。

于 2012-11-21T22:53:15.307 に答える
2
arr=($(awk -F: -v g=$GROUP '$1 == g { gsub(/,/,"\n",$4) ; print $4 }' /etc/group))
于 2012-11-21T22:50:20.483 に答える
2
j=0
for i in `awk '{ print $0 }' $FILE`
do
  arr[$j] = $i
  j=`expr $j + 1`
done 
于 2012-11-21T22:46:18.163 に答える