awk从入门到入土(16)awk变量类型探讨--关于数字和string两种类型

Posted 奇妙之二进制

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk从入门到入土(16)awk变量类型探讨--关于数字和string两种类型相关的知识,希望对你有一定的参考价值。

awk(变量、数组元素和字段)中的标量对象是动态类型的。这意味着它们的类型可以随着程序的运行而改变,从使用前的无类型,到字符串或数字,然后从字符串到数字或从数字到字符串,随着程序的进行。

你不能对无类型变量做很多事情,除了告诉它们是无类型的。以下程序针对a进行测试;当a从未被赋值时,测试成功。它还使用内置typeof()函数来显示a的类型:

$ gawk \'BEGIN  print (a == "" && a == 0 ?
> "a is untyped" : "a has a type!") ; print typeof(a) \'
a is untyped
unassigned

类似地,给标量赋予字符串值时,标量就具有字符串类型,例如来自字符串常量或来自另一个具有字符串类型的标量:

gawk \'BEGIN  a = 42 ; print typeof(a) ;b = a ; print typeof(b) \'

到目前为止,这一切都简单明了。但是,当awk处理来自用户的数据时会是怎么样呢?让我们从现场数据开始。以下命令应该产生什么作为输出?

echo hello | awk \' printf("%s %s < 42\\n", $1,
                           ($1 < 42 ? "is" : "is not")) \'

由于’hello’是字母数据,awk只能做字符串比较。在内部࿰

以上是关于awk从入门到入土(16)awk变量类型探讨--关于数字和string两种类型的主要内容,如果未能解决你的问题,请参考以下文章

awk从入门到入土用户自定义变量

awk从入门到入土(16)awk综合案例

awk从入门到入土(23)awk内置变量ARGCARGC--命令行参数传递

awk从入门到入土(23)awk内置变量ARGCARGC--命令行参数传递

awk从入门到入土认识awk内置变量和变量的使用

文本三剑客之awk-从入门到入土