0

我想从文件中提取一些数据并将其保存在一个数组中,但我不知道该怎么做。

下面我从 /etc/group 中提取一些数据并将其保存在另一个文件中,然后打印每个项目:

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

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

但是,我不想将数据提取到文件中,而是提取到数组中。

4

3 回答 3

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

带括号的赋值表示这$members是一个数组。原始awk命令包含在 中$(...),并添加了冒号,因此如果您在文件中有groupandgroup1并且您查找group,您也不会获得数据group1。当然,如果您想要两个条目,那么您可以删除我添加的冒号。

于 2012-11-21T22:53:15.307 回答
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 回答
2
arr=($(awk -F: -v g=$GROUP '$1 == g { gsub(/,/,"\n",$4) ; print $4 }' /etc/group))
于 2012-11-21T22:50:20.483 回答