variable1="ABC
XYZ
DEF"
变量的值由" \ n"
分隔variable2="MNO
ABC
PQR"
如何找到共同的价值" ABC"来自两者并将其存储在一个新变量中?
答案 0 :(得分:1)
如果可以将这些变量输出到文件,则可以使用comm。
echo "ABC\nXYZ\nDEF" | sort > va1
echo "MNO\nABC\nPQR" | sort > va2
comm -12 va1 va2
编辑:
@ZoltánNagy提供了单行版本:
comm -12 <(echo -e "b\na\nc"|sort) <(echo -e "a\nb"|sort)
答案 1 :(得分:0)
你可以简单地
echo "$variable1" | grep -Fx "$variable2"
这可以移植到POSIX shell。
在一般情况下,我建议使用Bash数组来保存变量中的离散值列表,而不是将它们放在换行符分隔的字符串中,假设您不关心POSIX兼容性(在这种情况下,这个问题不应标记为bash)。