[英]How to empty an array in bash script
我試圖從一堆文件中獲取特定信息。 遍歷文件列表grep
我需要什么ING。 我確信每個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
所以我使用unset
來清空數組,但它給出了錯誤。
line 49: unset: `x': not a valid identifier
我不想刪除數組的特定成員/索引,而是刪除整個數組本身。 誰能告訴我怎么做?
unset
適用於變量名稱,而不是它們保留的值。 所以:
unset arr1
或者,如果你想清空它:
arr1=()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.