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