从变量列表中找到项目的最佳方法

赌场

我有一个名为“ demo.cfg的文件,其中包含许多变量:

$VARIABLE_good="milk bread butter water"
$VARIABLE_bad="beer drugs"
$CONTENT_to_buy="Towel mouse bottle glass pen earphones"
$DUMMYVAR_mixed="drugs water bottle glass"

我想在整个文件中搜索项目“ drugs”,并希望识别出它属于$VARIABLE_bad

我想分配$VARIABLE_badasbad$VARIABLE_goodas good$CONTENT_to_buyas to_buy$DUMMYVAR_mixedasmixed等。

当我drugs在此文件中搜索“ ”时,所需的输出应为:

mixed
bad

将来我可能会拥有更多类似上述的变量,因此我需要一种灵活的方法来解决此问题。

我试过:

. demo.cfg "drugs" (这将导出所有变量)

if [[ $(echo $DUMMYVAR_mixed | grep "drugs") ]]; then echo "mixed"; fi
if [[ $(echo $DUMMYVAR_to_buy | grep "drugs") ]]; then echo "to_buy"; fi
if [[ $(echo $VARIABLE_bad | grep "drugs") ]]; then echo "bad"; fi
if [[ $(echo $VARIABLE_good | grep "drugs") ]]; then echo "good"; fi

但这看起来很长,而且似乎不太灵活。有更好的解决方案吗?

伊尔卡楚

这只是要求awk在这种情况下,只有一个=就行了:

awk -vpat=drugs -F= '$2 ~ pat {gsub(/^\$[A-Z]+_/, "", $1); print $1; }' demo.cfg

-vpat=...设置匹配中使用的变量:-F=分隔上的字段=$2 ~第二个字段上的匹配项,并将第一个字段gsub的初始部分替换为空字符串。然后$1打印第一个字段(我假设下半部分的开头部分只有大写字母)。


如果您可以在值中包含等号,则可以从整行中搜索等号和关键字,如下所示:

awk -vpat=drugs -F= '$0 ~ ("=.*" pat) {gsub(/^\$[A-Z]+_/, "", $1); print $1; }' demo.cfg

或者只是手动拆分两个部分,但这会更长一些。


请注意,如果demo.cfg包含$VARIABLE_good="milk bread butter water"带有美元符号的配置,则无法在外壳中找到它:

$ . demo.cfg
-bash: =milk bread butter water: command not found

赋值仅取变量的名称,美元符号仅在扩展变量时使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在列表中找到项目的ContiguousCount?

来自分类Dev

在列表中找到项目的ContiguousCount?

来自分类Dev

如何在列表中找到项目的位置?

来自分类Dev

从列表中找到每个项目的最新记录

来自分类Dev

从列表中删除项目的最佳方法

来自分类Dev

检查列表中是否存在项目的最佳方法?

来自分类Dev

遍历列表并从中删除项目的最佳方法?

来自分类Dev

从基于DateTime的列表中删除项目的最佳方法

来自分类Dev

获取列表中最低项目的最佳方法

来自分类Dev

评估列表中每个项目的最佳方法

来自分类Dev

在 Python 中的多维列表中查找项目的最佳方法

来自分类Dev

在列表中找到子列表项最大值的最佳方法

来自分类Dev

如何在Eclipse中找到动态Web项目的主要方法?

来自分类Dev

如何使用linq从列表中找到最后一个具有相同项目的项目

来自分类Dev

在列表中找到属性值最低的项目

来自分类Dev

无法在项目列表中找到特定的单词

来自分类Dev

Python未在列表中找到项目

来自分类Dev

在列表中找到与给定数字最接近的较小和较大值的最佳方法是什么

来自分类Dev

如何在grails中找到项目的当前版本

来自分类Dev

如何在std :: vector中找到项目的位置

来自分类Dev

如何在Swift中找到项目的索引?

来自分类Dev

更改搜索中找到的所选项目的主题

来自分类Dev

如何在std :: vector中找到项目的vector

来自分类Dev

如何从启动板页面中找到项目的PPA?

来自分类Dev

如何在合同映射中找到项目的索引

来自分类Dev

如何在android studio的数组中找到项目的数量?

来自分类Dev

API更新项目的最佳方法

来自分类Dev

构造大型项目的最佳方法

来自分类Dev

在向量中移动项目的最佳方法

Related 相关文章

热门标签

归档