我有了一些规则图案使用AWK在条件满足时提取数据?
snaps1: Counter: 4966
Opens: Counter: 357283
Instance: s.1.aps.userDatabase.mount275668.attributes
snaps1: Counter: 0
Opens: Counter: 357283
Instance: s.1.aps.userDatabase.test.attributes
这些线的上方和下方的其他线中重复一个大文件。我需要打印snaps1行并获取实例:line所以我需要搜索snaps1,但只有计数器大于0,然后打印snaps1行和实例行。从本网站
有人给出了答案
awk '/snaps1/{s=$0; c=$NF} /Instance/ && c{print s ORS $0}' file
这工作,但我不知道它是如何工作。我还需要知道这是否摆脱了空间?如果我想比较上面的文本而不是零,该怎么办?因此,不是查找零,而是查找snap1,它仅等于ZZZ,并且在比较snap1>零时,我想打印包含上面提供的实例的行。有人可以回复,请提供详细说明这是如何工作的,以便我可以在其他地方使用它?
snaps1: Counter: ZZZ
Opens: Counter: 357283
Instance: s.1.aps.userDatabase.test.attributes
snaps1: Counter: ABC
Opens: Counter: 357283
Instance: s.1.aps.userDatabase.test.attributes
从线
所以上面我看到这个输出
snaps1: Counter: ZZZ
Instance: s.1.aps.userDatabase.test.attributes
感谢任何帮助,您可以提供
'&& c'部分检查计数器是否不是0.所以你可以使用'awk'/ snaps1/{s = $ 0; c = $ NF ==“ZZZ”}/Instance/&& c {打印s ORS $ 0}'文件' –