我创建了一个带有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/

10-15 12:06