gpt4 book ai didi

variables - AWK——如何从稍后出现的匹配正则表达式中分配变量的值?

转载 作者:行者123 更新时间:2023-12-03 06:53:12 25 4
gpt4 key购买 nike

虽然我有这个awk脚本

/regex2/{
var = $1}

/regex1/{
print var}

我通过输入文件执行:

regex1

This should be assigned as variable regex2

我没有打印输出。所需的输出是:要打印的“This”。

然后我可能会考虑利用 BEGIN:

BEGIN{
/regex2/
var = $1}

/regex1/{
print var}

但显然 BEGIN 无法容纳正则表达式匹配功能。对此有何建议?

最佳答案

这将达到预期的结果:

awk '/regex2/ { print $1 }'

否则,您需要读取该文件两次并执行如下操作。它将把最后一次出现的 /regex2/ 存储在 var 中。重新读取文件后,每次出现 /regex1/ 时,都会打印 var。请注意,您将在输出中看到一个空行,并在换行符上看到关键字“This”:

awk 'FNR==NR && /regex2/ { var = $1; next } /regex1/ { print var }' file.txt{,}

关于variables - AWK——如何从稍后出现的匹配正则表达式中分配变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12659317/

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