gpt4 book ai didi

bash - 我如何为多行中的所有匹配制作 AWK

转载 作者:行者123 更新时间:2023-12-02 16:36:15 25 4
gpt4 key购买 nike

您好,我对 AWK 有疑问,我需要解析一些文本,但我不知道如何递归解析。

我有这个:

awk '/^tags: /{p=$2} /^[0-9]* /{v=$2} /^$/{print ""p" "v""}'

但是那只解析第一个合规性,我需要所有匹配。

输入(sensorId可以大于2):

name: temperature
tags: sensorId=1
time last value
---- ---- -----
1593531518973361030 40.125 40.125

name: temperature
tags: sensorId=2
time last value
---- ---- -----
1593531338178622316 -0.062 -0.062

我想要输出:

1 40.125
2 -0.062

sensorId=1 40.125
sensorId=2 -0.062

我使用

最佳答案

问题是你只在有空行时打印。最后一次出现后没有空行,只有文件末尾。您可以将其与 END 相匹配。

awk '/^tags: /{p=$2} /^[0-9]* /{v=$2} /^$/{print p, v} END {print p, v}'

另一种选择是在匹配第二行时立即打印这两个值。

awk '/^tags: /{p=$2} /^[0-9]* /{print p, $2}'

关于bash - 我如何为多行中的所有匹配制作 AWK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62661294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com