簡體   English   中英

如何在bash腳本中清空數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM