加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何在AWK变量中存储字符串(行)

发布时间:2020-12-14 01:19:31 所属栏目:Linux 来源:网络整理
导读:写一个AWK脚本,我想存储一个我在一个变量中找到的行,只有在以后,如果我也匹配另一行,打印出该原始行. 例: a -- save this onebc -- Now that we found c,let's print a Psudo,希望它工作完全像这样,代码: /a/ { myvar = $0 }/c/ { print $myvar $0 } 在梦
写一个AWK脚本,我想存储一个我在一个变量中找到的行,只有在以后,如果我也匹配另一行,打印出该原始行.

例:

a    <-- save this one
b
c    <-- Now that we found c,let's print a

Psudo,希望它工作完全像这样,代码:

/a/ { myvar = $0 }
/c/ { print $myvar $0 }

在梦境中生产:

ac

我的一厢情愿的psudo代码的实际,迷幻,结果:

cc

注意:回答“只是打印一个,然后c就像使用这个例子的简化一样.”真实世界的用例要求c只根据其他条件打印,因此需要存储最近看到的a如果有机会打印下面的c.

解决方法

工作代码

/a/ { myvar = $0 }
/c/ { print myvar $0 }

将$视为运算符,可以获取给定值
场号.

这里myvar保持值“a”.在数字上下文中使用时,不以数字开头的字符串被视为值为零.因此,$myvar被视为$“a”,即0美元

一种奇怪的方式来利用这个:

awk '/a/ {myvar = $0} /c/ {print $myvar $1}' <<END
2a
b
c d
END

将输出

dc

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读