我创建了一个带有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
的每个单词? 最佳答案
在字段分隔符中使用^
行的开头:
awk -v FS="^HAMMER=" 'NF>1{print $2}'
但是如果你有key=value构造,你最好使用:
awk -v FS='[=,]' '$1=="HAMMER"{for(i=2;i<=NF;i++} print $i}'
字段分隔符设置为
FS
或=
。如果第一个参数是关键字,则打印该行的所有其他参数。关于linux - 使用FS的Shell awk命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41016437/