我有两个这样的数组:
a=(1 2 2 1)
b=(3 1 1 1)
我想计算它们中唯一的共同元素。例如,上面的结果是1
。
修改 文件:
a=(1 2 2 1)
b=(3 1 2 1)
grep -f <(printf "%s\n" "${a[@]}") < <(printf "%s\n" "${b[@]}") | uniq
运行: ./test.sh
结果:
source test.sh
1
2
1
答案 0 :(得分:1)
使用grep
和sort -u
:
grep -f <(printf "%s\n" "${a[@]}") <(printf "%s\n" "${b[@]}") | sort -u
1
备用awk命令:
awk 'FNR==NR{a[$0];next} $0 in a && !($0 in b){b[$0]}
END{for (i in b) print i}' <(printf "%s\n" "${a[@]}") <(printf "%s\n" "${b[@]}")
1