首页 > 其他分享 >无涯教程-AWK - 字符串函数

无涯教程-AWK - 字符串函数

时间:2023-10-22 16:02:18浏览次数:48  
标签:教程 arr 无涯 AWK str BEGIN print awk Learnfk

AWK具有以下内置String函数-

asort(arr [,d [,how]]) 

此函数使用GAWK的常规规则对 arr 的内容进行排序以比较值,并使用从1开始的连续整数替换排序后的值 arr 的索引。

[Learnfk]$awk 'BEGIN {
   arr[0]="Three"
   arr[1]="One"
   arr[2]="Two"
   print "Array elements before sorting:"
   
   for (i in arr) {
      print arr[i]
   }
   asort(arr)
   print "Array elements after sorting:"
   
   for (i in arr) {
      print arr[i]
   }
}'

在执行此代码时,您将获得以下输出-

Array elements before sorting:
Three
One
Two
Array elements after sorting:
One
Three
Two

asorti(arr [,d [,how]]) 

该函数的行为与 asort()的行为相同,除了将数组索引用于排序。

[Learnfk]$awk 'BEGIN {
   arr["Two"]=1
   arr["One"]=2
   arr["Three"]=3
   asorti(arr)
   print "Array indices after sorting:"
   
   for (i in arr) {
      print arr[i]
   }
}'

在执行此代码时,您将获得以下输出-

Array indices after sorting:
One
Three
Two

gsub(regex,sub,string)

gsub 代表全局替换,它用 regex 替换每次出现的 sub ,第三个参数是可选的。如果省略,则使用$0。

[Learnfk]$awk 'BEGIN {
   str="Hello, Learnfk"
   print "String before replacement=" str
   
   gsub("Learnfk", "Learnfk", str)
   print "String after replacement=" str
}'

在执行此代码时,您将获得以下输出-

String before replacement=Hello, Learnfk
String after replacement=Hello, Learnfk

index(str,sub)

它检查 sub 是否为 str 的子字符串。成功时,它返回sub开始的位置;否则返回0。 str 的第一个字符位于位置1。

[Learnfk]$awk 'BEGIN {
   str="One Two Three"
   subs="Two"
   ret=index(str, subs)
   
   printf "Substring\"%s\" found at %d location.\n", subs, ret
}'

在执行此代码时,您将获得以下输出-

Substring "Two" found at 5 location.

length(str)

它返回一个字符串的长度。

[Learnfk]$awk 'BEGIN {
   str="Hello, Learnfk !!!"
   print "Length=", length(str)
}'

在执行此代码时,您将获得以下输出-

Length=16

match(str,regex)

它返回字符串 str 中 regex 的第一个最长匹配的索引。如果找不到匹配项,则返回0。

[Learnfk]$awk 'BEGIN {
   str="One Two Three"
   subs="Two"
   ret=match(str, subs)
  
   printf "Substring\"%s\" found at %d location.\n", subs, ret
}'

在执行此代码时,您将获得以下输出-

Substring "Two" found at 5 location

split(str,arr,regex)

此函数通过正则表达式 regex 将字符串 str 拆分为字段,并将这些字段加载到数组 arr 中。如果省略 regex ,则使用FS。

[Learnfk]$awk 'BEGIN {
   str="One,Two,Three,Four"
   split(str, arr, ",")
   print "Array contains following values"
   
   for (i in arr) {
      print arr[i]
   }
}'

在执行此代码时,您将获得以下输出-

Array contains following values
One
Two
Three
Four

printf(format,expr-list)

该函数根据格式返回从 expr-list 构造的字符串。

[Learnfk]$awk 'BEGIN {
   param=1024.0
   result=sqrt(param)
   
   printf "sqrt(%f)=%f\n", param, result
}'

在执行此代码时,您将获得以下输出-

Hello, Learnfk !!!

strtonum(str)

此函数检查 str 并返回其数值,如果str以前导0开头,则将其视为八进制数,如果str以0x或0X开头,则将其视为十六进制数。否则,假定它是一个十进制数。

[Learnfk]$awk 'BEGIN {
   print "Decimal num=" strtonum("123")
   print "Octal num=" strtonum("0123")
   print "Hexadecimal num=" strtonum("0x123")
}'

在执行此代码时,您将获得以下输出-

Decimal num=123
Octal num=83
Hexadecimal num=291

sub(regex,sub,string)

此函数执行单次替换,它用 regex 代替了 sub 的第一个匹配项。第三个参数是可选的。如果省略,则使用$0。

[Learnfk]$awk 'BEGIN {
   str="Hello, Learnfk"
   print "String before replacement=" str
   
   sub("Learnfk", "Learnfk", str)
   print "String after replacement=" str
}'

在执行此代码时,您将获得以下输出-

String before replacement=Hello, Learnfk
String after replacement=Hello, Learnfk

substr(str,start,l)

此函数返回字符串 str 的子字符串,该字符串从长度为 l 的索引 start 开始。如果省略length,则返回从索引 start 开始的 str 后缀。

[Learnfk]$awk 'BEGIN {
   str="Hello, Learnfk !!!"
   subs=substr(str, 1, 5)

   print "Substring=" subs
}'

在执行此代码时,您将获得以下输出-

Substring=Hello

tolower(str)

此函数返回字符串 str 的副本,并将所有大写字符转换为小写。

[Learnfk]$awk 'BEGIN {
   str="HELLO, Learnfk !!!"
   print "Lowercase string=" tolower(str)
}'

在执行此代码时,您将获得以下输出-

Lowercase string=hello, Learnfk !!!

toupper(str)

此函数返回字符串 str 的副本,其中所有小写字符都转换为大写。

[Learnfk]$awk 'BEGIN {
   str="hello, Learnfk !!!"
   print "Uppercase string=" toupper(str)
}'

在执行此代码时,您将获得以下输出-

Uppercase string=HELLO, Learnfk !!!

参考链接

https://www.learnfk.com/awk/awk-string-functions.html

标签:教程,arr,无涯,AWK,str,BEGIN,print,awk,Learnfk
From: https://blog.51cto.com/u_14033984/7977186

相关文章

  • npm发包教程
    1-npm注册账号访问npm官网注册账号,邮件验证激活账号npm官网2-项目npm配置在项目下打开终端,初始化npmnpminit-y此时项目下会生成package.json配置文件,可以在里面修改配置。3-登录npm账号注意:这里开始不要使用npm镜像,否则发包会失败。如果使用了镜像,可以输入下面指令......
  • C++零基础教程(引用)
    (文章目录)前言本篇文章我们来讲解C++中非常重要的一个概念,这个概念就是引用,引用在C++中经常使用,下面就让我们来看看到底什么是引用吧。一、引用概念介绍及使用方法在C++中,引用是一种别名,它允许我们使用一个已经存在的对象来创建一个新的名称。引用提供了一种更直观、简洁和安......
  • Python scrapy爬虫框架爬取廖雪峰大佬官网Python教程左侧目录
    文章转载至:mob6454cc6f27a3 的PythonScrapy爬虫框架实例(一)爬虫框架scrapy简单实例吃面崩掉牙的Scrapy爬虫框架入门教程(1)——爬取廖雪峰老师的博客!!只是爬取一个字段,并不将爬取的数据存储下来。!!运行环境:window10x64系统python3.6pycharmanacondascrapy安装好以上环境、包之后,......
  • 金蝶SHR新手开发教程
    金蝶shr与传统框架开发有很大区别,目前学了一个月,写这篇文章初衷,便是给后学者一点方向,别像我一样摸不着头脑,搞了半个月,还不知道方向。业务开发切入点 1.业务界面 - wif视图配置列表,表单,菜单,按钮等 2.数据接口 - osf对接第三方接口 3.webserver - handle自定义扩展 4.appserv......
  • 无涯教程-AWK - 正则表达式运算符函数
    本示例说明了正则表达式运算符的两种形式。Match它表示为〜,它查找包含匹配字符串的字段,如,以下示例将打印包含模式9的行。[Learnfk]$awk'$0~9'marks.txt在执行此代码时,您将获得以下输出-2)ToolfkMaths905)NesfkHistory89不匹配它表示为!〜,它查找不包......
  • Python教程(15)——Python流程控制语句详解
    Python流程控制是Python编程中非常重要的一部分,它用于控制程序的执行流程。Python提供了多种流程控制语句,包括if语句、while循环、for循环、break和continue语句等。这种流程控制在各个语言中都是大同小异的,如果你已经学过其他的语言,那么这章节就可以直接跳过。if语句if语句用于......
  • Awk、Sed、Grep、Cut命令基本用法
    awk、sed、grep、cut是Linux中文本处理、shell开发、数据截取的利器。Sedsed(StreamEditor)是一种流式文本编辑器,常用于对文本文件进行处理和转换。下面是一些常见的sed经典用法:替换文本:sed's/old/new/g'file.txt将文件中所有的"old"替换为"new"。2.删除行:sed'/pattern/d'fil......
  • 无涯教程-AWK - 指数运算符函数
    指数运算符有两种格式-指数格式1^它是一个指数运算符,可提高操作数的值。如,下面的示例将10的值提高2。[Learnfk]$awk'BEGIN{a=10;a=a^2;print"a=",a}'在执行此代码时,您将获得以下输出-a=100指数格式2**它是一个指数运算符,可提高操作数的值。如,下面的示例将10......
  • Python教程(15)——Python流程控制语句详解
    Python流程控制是Python编程中非常重要的一部分,它用于控制程序的执行流程。Python提供了多种流程控制语句,包括if语句、while循环、for循环、break和continue语句等。这种流程控制在各个语言中都是大同小异的,如果你已经学过其他的语言,那么这章节就可以直接跳过。if语句if语句用......
  • 无涯教程-AWK - 逻辑运算符函数
    AWK支持以下逻辑运算符-逻辑&&expr1&&expr2如果expr1和expr2都为true,则输出为true,否则返回false。当且仅当expr1判断为true时,才会判断expr2。以下示例检查给定的一位数字是否为八进制格式。[Learnfk]$awk'BEGIN{num=5;if(num>=0&&num<=7)printf"%disin......