gkr*_*2d2 4 linux arrays bash shell
我试图从一堆文件中获取特定信息。迭代文件列表,grep满足我的需要。我确信每个grep都会给出 1 个以上的结果,我想将该结果存储在一个数组中。完成特定于文件的工作后,我想从数组中擦除所有内容并重新开始新文件。
files_list=`ls`
for f in $files_list
do
echo $f
arr1=`cat $f | grep "abc" | grep "xyz"`
arr2=`cat $f | grep "pqr" | grep "mno"`
arr3=`cat $f | grep "df"`
for ((i=0; i<${#arr1[@]}; ++i))
do
printf "%s %s %s\n" "${arr1[i]}" "${arr2[i]}" "${arr3[i]}"
done
unset $arr1
unset $arr2
unset $arr3
done
Run Code Online (Sandbox Code Playgroud)
所以我曾经unset清空数组,但它给出了错误。
line 49: unset: `x': not a valid identifier
Run Code Online (Sandbox Code Playgroud)
我不想删除数组的特定成员/索引,而是删除整个数组本身。谁能告诉我怎么做?
ogu*_*ail 10
unset使用变量名称,而不是它们保留的值。所以:
unset arr1
Run Code Online (Sandbox Code Playgroud)
或者,如果你想清空它:
arr1=()
Run Code Online (Sandbox Code Playgroud)