scanf,awk 中的反向引用
awk(POSIX) 中是否有 scanf()(如 C 语言)的实现?
我知道 awk 没有像 sed 和 perl 那样的反向引用。 在 awk 中模拟最简单的方法是什么?
谢谢尼安
Is there any implementation of scanf()(like in C) in awk(POSIX)?
I know that awk does not have back reference like in sed and perl.
What is the easiest way to simulate in awk?
Thanks
Nyan
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
sprintf() 、 printf() 可能就是您正在寻找的。 awk 不支持反向引用,但是 gawk 的 gensub() 甚至 gsub() 可以提供反向引用。
反向引用只是存储匹配的字符串。因此,利用 awk 的功能来区分字段和字段分隔符,使用其内部变量(如 OFS、FS、ORS 等)是可行的方法。例如,
当然,这只是一个简单的示例。但你明白了。
sprintf() , printf() may be what you are looking for. awk does not support backreferences however gawk's gensub(), or even gsub() can provide backreferences.
Backreferences are just storing the strings that are matched. So, making use of awk's capability to differentiate fields and field delimiters, using its internal variables like OFS,FS,ORS etc are the way to go.. eg
Of course, this is just a simple example. But you get the idea.