【发布时间】:2016-12-07 11:35:52
【问题描述】:
我创建了一个带有 awk 命令的脚本,内容如下:
myVar=$(awk -v FS="HAMMER=" 'NF>1{print $2}' TEST.properties)
echo "Appliances="$myVar
文件TEST.properties 包含以下内容:
...
HAMMER=foo1,foo2
JACKHAMMER=foo3
...
以上命令返回
foo1,foo2
foo3
我应该如何修改命令以仅查找 HAMMER 而不是包含 HAMMER 的每个单词?
【问题讨论】:
-
不要使用诸如将搜索字符串设置为字段分隔符之类的技巧,使用 FS 作为字段分隔符。试试
awk -vFS="=" '$1=="HAMMER"{print $2}' file -
总是 key=value 吗?和
HAMMER出现在键中? -
是键=值。锤子是关键。感谢您的建议!
-
如果文件是无害的,那么获取它并打印变量呢?
(source file; echo "$HAMMER" ) -
当我将 '$1=="HAMMER" 替换为 '$1=="$SomeVar" 时,我什么也得不到。我知道变量有一个值