如何检查数组在bash脚本中不包含行

时间:2015-07-22 17:38:59

标签: bash shell unix

我正在逐行读取文件中的数据并将其存储到数组中,以便我可以稍后访问该数组以与其他文件数据进行比较。

现在,我的输入文件有冗余,如何只向数组添加唯一的行。我需要在添加到数组本身时进行检查吗?

以下是我用来从文件中读取数据的代码:

while read line
do
    //How to check array already contains this line???
        <Code to adding to array>
done <"$file"

1 个答案:

答案 0 :(得分:0)

您可以使用关联数组:

declare -A ulines

while IFS= read -r line; do
   [[ ! ${ulines["$line"]} ]] && echo "$line" && ulines["$line"]=1
done < "$file"

这将在输入文件中的stdout 保留原始顺序上打印唯一的行。