b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

awk内置函数的示例(易于理解,向前看)

电脑杂谈  发布时间:2020-05-05 06:15:35  来源:网络整理

awk数组长度_awk数组长度_awk数组

在此博客中,AWK是一系列文章. 我将尝试以一种易于理解的方式来总结awk命令的相关知识点.

Awk系列博客直接链接: 从放弃到入门的AWK命令摘要(易于理解,快进来看)

awk从放弃到入门(10):awk内置函数

本文中的知识点是基于上一篇文章. 如果您尚未掌握上一篇文章中的知识,请参考上一篇文章.

注意: 在阅读本文之前,最好先学习一些基本的开发语法awk数组长度,例如函数的基本概念等,否则在阅读时可能会遇到障碍.

在awk中,您可以自定义功能并具有内置功能. 今天,我们将总结一些常用的内置函数.

Awk的内置函数可以大致分为算术函数,字符串函数,时间函数,其他函数等. 在这里,我仅总结我认为常用的函数.

最常用的算术函数是rand函数,srand函数和int函数.

您可以使用rand函数生成随机数,但是使用rand函数时,您需要与srand函数配合使用,否则rand函数返回的值将保持不变. 示例如下.

awk从放弃到入门(10):awk内置函数

可以看出,如果仅使用rand函数,则生成的值将保持不变. 您可以使用srand函数生成一个大于0且小于1的随机数. 示例如下

awk从放弃到入门(10):awk内置函数

awk数组长度_awk数组_awk数组长度

如您所见,上图中生成的随机数都是小于1的小数. 如果要生成整数随机数,可以将生成的随机数乘以100,然后截取整数部分,然后使用int函数来截取整数部分的值,示例如下

awk从放弃到入门(10):awk内置函数

经过上述处理,您可以获得小于100的随机整数.

我们可以使用gsub函数或sub函数替换一些文本. 首先让我们看看如何使用gsub函数.

如果要用大写字母“ L”替换以下文本第一栏中的所有小写字母“ l”,则可以使用gsub函数. 示例如下.

awk从放弃到入门(10):awk内置函数

如上所示,我们使用gsub函数将小写字母“ l”替换为大写字母“ L”,但是替换范围限制为“ $ 1”,因此当再次输出文本时,我们发现只有文本将第一列中的小写字母“ l”替换为大写字母“ L”,其他列中的小写字母“ l”不会替换,当然,如果要替换所有小写字母文本“”中的“ l”,您可以将上图中的“ $ 1”替换为“ $ 0”,或在gsub函数中省略第三个参数. 在gsub中省略第三个参数时,默认值为“ $ 0” “. 示例如下.

awk从放弃到入门(10):awk内置函数

阅读上面的示例后,我认为您应该已经了解了gsub函数的作用. 是的,gsub函数将在指定范围内找到指定字符,并将其替换为指定字符串.

实际上,我们也可以根据正则表达式替换字符串,示例如下.

awk从放弃到入门(10):awk内置函数

好的,在上面的示例之后,您应该已经了解gsub的用法.

awk数组长度_awk数组长度_awk数组

那么sub函数和gsub函数之间有什么区别?让我们进行比较.

awk从放弃到入门(10):awk内置函数

小心地,正如您已经发现的那样,当使用gsub函数时,gsub将替换指定范围内的所有字符.

使用子功能不同. 使用子功能时,子功能将只替换指定范围内第一个匹配的字符.

我们可以了解gsub函数在指定范围内作为全局替换的作用.

子功能的作用可以理解为在指定范围内的一次替换,仅替换第一个匹配的字符.

这是sub函数和gsub函数之间的唯一区别.

我们可以通过length函数获得指定字符串的长度,示例如下

awk从放弃到入门(10):awk内置函数

如上图所示,我们输出文本中每个单词的长度. 实际上,长度函数可以省略传入的参数,即不指定任何字符更改. 省略参数时,默认为使用“ $ 0”作为参数. 示例如下.

awk从放弃到入门(10):awk内置函数

如上所示,我们使用length函数获取文本中每一行的长度.

awk数组长度_awk数组长度_awk数组

我们可以使用索引函数来获取指定字符在整个字符串中的位置,示例如下

awk从放弃到入门(10):awk内置函数

在上图中,我们使用索引函数在每一行中找到字符串“ Lee”. 如果Lee在当前行中存在,则返回字符串Lee位于当前行中;如果Lee在当前行中不存在,则返回0,指示当前行中没有Lee. 如上图所示,第二行包含Lee,并且Lee位于第二行的第七个字符的位置,因此返回数字7.

在上一篇文章中,当我们总结数组时,我们提到了一个函数. 使用此功能,我们可以动态生成数组,而无需手动设置数组中每个元素的值. 是的,此功能是拆分功能. 通过split函数,我们可以根据指定的分割字符剪切指定的字符串,并在剪切后将每个段分配给数组的元素,从而动态创建数组. 示例如下.

awk从放弃到入门(10):awk内置函数

如上图所示,当我们在数组中输出元素时,我们使用“: ”作为拆分器,通过split函数拆分字符串ts,并将拆分后的字符串保存到名为huluwa的数组中. ,每个元素的值是分割字符. 实际上,分割函数也具有相应的返回值. 返回值是分割后数组的长度. 示例如下.

awk从放弃到入门(10):awk内置函数

请注意,将数组的元素下标除以split函数后开始于1,不同于其他语言中的数组下标从0开始,并且数组输出中元素的顺序可能是字符串中的字符原因不同. 如前所述,如果要按顺序输出数组中的元素,可以使用以下方法.

awk从放弃到入门(10):awk内置函数

我们首先使用split函数生成数组,并将split的返回值保存在变量arrlen中,然后在for循环中使用变量的增量顺序输出相应的下标和元素值在数组中. 不明白为什么,请参考上一篇文章.

我们还可以通过asort函数根据元素的值对元素进行排序,但是由asort函数排序的数组的下标将被重置. 示例如下

awk从放弃到入门(10):awk内置函数

awk数组_awk数组长度_awk数组长度

如上图所示awk数组长度,数组中元素的值都是数字,但下标是自定义字符串. 通过asort函数对数组进行排序后,再次输出数组中的元素时,它们已经符合元素的值. 进行了排序,但是数组的下标也被重置为纯数字. 实际上,asort还有另一种用法,即在对原始数组元素的值进行排序的同时创建一个新数组,并将排序后的元素放入新数组中,这样可以使原始数组保持不变. 只要我们在新数组中打印元素值,我们就可以输出排序后的元素值. 示例如下.

awk从放弃到入门(10):awk内置函数

实际上,asort函数也有一个返回值. 它的返回值是数组的长度. 换句话说,asort的返回值是数组中元素的数量. 示例如下.

awk从放弃到入门(10):awk内置函数

了解asort函数后,让我们了解asorti函数. 仔细看,是各种各样的东西

使用asort函数根据元素的值进行排序,并使用asorti函数根据元素的下标进行排序.

当元素的下标是字符串时,我们可以使用asorti函数根据下标的字母顺序进行排序. 当元素的下标是数字时,我们不需要使用该函数进行排序. 直接使用for循环. 可排序的,因此,目前我们仅考虑当数组的下标为字符串时,如何通过asorti函数根据下标对数组进行排序.

当数组的下标是字符串时,asorti函数将按原始数组中的下标字母顺序排序,并将排序后的下标放入新数组中,而asorti函数将返回新的数组,示例如下

awk从放弃到入门(10):awk内置函数

如上图所示,在根据数组t的索引进行排序之后,asorti函数将创建一个新的数组newt. newt中元素的值是数组t的索引的值. 在上面的示例中,我们使用len变量保存asorti函数的Return值,并在最后排序之后输出新数组.

所以,您像您一样聪明,您必须考虑到既然我们已经排序并输出了t数组的下标,那么我们绝对可以再次根据排序后的下标输出相应的元素值,从而实现根据数组下标进行排序之后,输出原始数组元素的目的如下.

awk从放弃到入门(10):awk内置函数

是的,上述过程实际上是由新数组负责对旧数组的下标进行排序,并将排序后的下标用作新数组的元素,并且在我们输出新数组的元素时,我们还使用新数组的元素值作为旧数组的下标,它输出旧数组中元素的值,这句话很容易包装,但是我想你应该理解.

本文总结如下,希望对您有所帮助〜


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-199317-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...