bash - Bash IF 检查确切的数字是否在列表中
问题描述
我想检查数字是否在列表中,但 23369 与 2336953 匹配。我想知道在 bash 中使用 IF 仅匹配确切数字。
cgroup_uid="1251243 2007297 2336953 695212 834248 23369"
run_uid="1251243 2007297 2336953 695212 834248"
echo $cgroup_uid
echo $run_uid
for i in $cgroup_uid;do
if [[ $run_uid =~ $i ]]; then
echo "contains $i"
fi
done
我会很感激任何建议。
解决方案
您要查找两个列表中的元素:
comm -12 <(<<<"$cgroup_uid" tr ' ' '\n' | sort) <(<<<"$run_uid" tr ' ' '\n' | sort)
将<<<"$cgroup_uid"
输出带有换行符的变量。将tr ' ' '\n'
用换行符替换每个空格。然后| sort
将对数字进行排序。替代文件名,其中<( ... )
包含命令的重定向输出。comm -12
打印出现在两个文件中的行。
对于您如何尝试这样做,为了进行比较,我会使用以下grep
单词grep -w
:
if grep -w "$i" <<<"$run_id"; then
推荐阅读
- ios - 在不同的模拟器中运行应用程序时未显示数据
- kubernetes - 用于 pod 的 kubernetes 扩展资源
- git - 如何在 .gitignore 中排除的子目录上添加 Git 子模块?
- c++ - 在没有任何外部资源(语言/字典)的情况下初始化 tesseract
- delphi - 使用 Delphi 和 TINetHttp,为什么我会得到一个带有一个 url 而不是另一个 url 的 TINetHttp 重定向异常?
- flask - 使用负载平衡器下的自动扩缩功能上传 Google Cloud Storage
- android - React Native 错误:无法从 ` 解析模块`./index` - 多个问题
- java - JaCoco MVN 未知块类型
- reactjs - 如何在 React 的 Material UI 库的选项卡组件中禁用波纹
- python - python logging.basicConfig 不会覆盖现有的日志文件