我正在逐行读取文件中的数据并将其存储到数组中,以便我可以稍后访问该数组以与其他文件数据进行比较。
现在,我的输入文件有冗余,如何只向数组添加唯一的行。我需要在添加到数组本身时进行检查吗?
以下是我用来从文件中读取数据的代码:
while read line
do
//How to check array already contains this line???
<Code to adding to array>
done <"$file"
答案 0 :(得分:0)
您可以使用关联数组:
declare -A ulines
while IFS= read -r line; do
[[ ! ${ulines["$line"]} ]] && echo "$line" && ulines["$line"]=1
done < "$file"
这将在输入文件中的stdout 保留原始顺序上打印唯一的行。