如何在 shell 脚本中的 2 个变量中查找公共值
How to find common values in 2 variables in a shell script
variable1="ABC
XYZ
DEF"
变量的值由“\n”分隔
variable2="MNO
ABC
PQR"
如何从两者中找到公共值 "ABC" 并将其存储在新变量中?
如果可以将这些变量输出到文件,则可以使用 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)
你可以简单地
echo "$variable1" | grep -Fx "$variable2"
这可移植到 POSIX shell。
在一般情况下,假设您不关心 POSIX 兼容性(在这种情况下,不应将此问题标记为 bash)。
variable1="ABC
XYZ
DEF"
变量的值由“\n”分隔
variable2="MNO
ABC
PQR"
如何从两者中找到公共值 "ABC" 并将其存储在新变量中?
如果可以将这些变量输出到文件,则可以使用 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)
你可以简单地
echo "$variable1" | grep -Fx "$variable2"
这可移植到 POSIX shell。
在一般情况下,假设您不关心 POSIX 兼容性(在这种情况下,不应将此问题标记为 bash)。