【发布时间】:2015-05-20 11:07:28
【问题描述】:
我有一堆不同类型的文件需要定期查看,它们的共同点是这些行都有一堆key=value 类型的字符串。所以像:
Version=2 Len=17 Hello Var=Howdy Other
我希望能够直接从 awk 中引用这些名称...所以类似于:
cat some_file | ... | awk '{print Var, $5}' # prints Howdy Other
我该怎么做呢?
【问题讨论】:
-
您想使用 awk 有什么特别的原因吗?关联数组(一些其他语言称为映射或哈希)也可以在原生 bash 中使用。
-
另外,您能否更明确地解释一下解析规则?我希望上面分配
Len=17 Hello- 将Hello单词与Len的值分组 - 因为Var=Howdy Other的给定行为依赖于隐式分组所有不包含=符号的单词作为扩展上一个单词的内容。 -
在问题的输出中,
Var是Howdy。Other来自$5。或者我读了它。 -
@CharlesDuffy 值不会有空格。所以
Len=17是一个设置该变量的词,Hello是另一个不设置任何内容的词。 -
@CharlesDuffy 你会如何在 bash 中做到这一点?