我想从文件中提取一些数据并将其保存在数组中,但我不知道该怎么做。
在下面我从/ 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
但是,我不想将数据提取到文件中,而是提取到数组中。
答案 0 :(得分:4)
members=( $(awk -F: '/^'$GROUP':/ { gsub(/,/,"\n",$4) ; print $4 }' /etc/group) )
带括号的赋值表示$members
是一个数组。原始awk
命令已包含在$(...)
中,并添加冒号,以便在文件中包含group
和group1
,并查找group
},你也没有得到group1
的数据。当然,如果你想要两个条目,那么你放弃我添加的冒号。
答案 1 :(得分:2)
j=0
for i in `awk '{ print $0 }' $FILE`
do
arr[$j] = $i
j=`expr $j + 1`
done
答案 2 :(得分:2)
arr=($(awk -F: -v g=$GROUP '$1 == g { gsub(/,/,"\n",$4) ; print $4 }' /etc/group))