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

awk中内置字符串函数的详细说明

电脑杂谈  发布时间:2020-04-16 16:01:10  来源:网络整理

js 判断 仅有一个字符_awk 判断空字符串_java 判断非ascii字符

awk提供了许多强大的字符串函数,在这里供记录,以备将来使用.

awk内置字符串函数

gsub(r,s)在整个$ 0中用r替换r

gsub(r,s,t)在整个t时间内用s替换r

索引(s,t)

返回字符串t在s中的第一个位置

长度(s)

返回长度

匹配(s,r)

测试s是否包含与r匹配的字符串

split(s,a,fs)将s分成fs上的序列a

sprint(fmt,exp)返回以fmt格式化的exp

sub(r,s)

用$ 0中最长的子字符串替换s

substr(s,p)返回字符串s中从p开始的后缀部分

substr(s,pawk 判断空字符串,n)

返回从p开始且长度为n的字符串s的后缀部分

详细说明如何使用每个功能.

gsub功能有点类似于sed搜索和替换. 它允许将一个字符串或字符替换为另一字符串或字符,并以正则表达式的形式执行它. 第一个函数作用于记录$ 0,第二个gsub函数允许指定目标,但是,如果未指定目标,则默认值为$ 0.

The

index(s,t)函数返回查询字符串t在目标字符串s中的第一位置. 长度函数返回字符串的字符

java 判断非ascii字符_awk 判断空字符串_js 判断 仅有一个字符

长度. match函数测试字符串s是否包含由正则表达式r定义的匹配项. split使用域分隔符fs

字符串s被划分为指定的序列a. sprint函数类似于printf函数(稍后讨论),返回基本输出格式fmt

结果字符串exp. sub(r,s)函数用s替换$ 0中最左边最长的子字符串awk 判断空字符串,并与(r)匹配

sub(s,p)返回位置p之后的字符串s的后缀. substr(s,p,n)与上面的相同,并将子字符串的长度指定为n.

接下来,我们在awk中查看这些字符串函数的功能.

1.gsub

要在整个记录中用另一个字符串替换一个字符串,请使用正则表达式格式/目标模式/替换模式

/. 例如,将学生序列号4842更改为4899:

$ awk'gsub('4842 /,4899){print $ 0}'grade.txt

J.Troll 07/99 4899布朗3 12 26 26

2.index

t在查询字符串s中出现的第一个位置. 该字符串必须用双引号引起来. 例如,返回目标字符串

ny在兔子中出现的第一个位置是字符数.

$ awk'BEGIN {打印索引(“ Bunny”,“ ny”)} grade.txt

4

3.length

返回所需的字符串长度,例如,检查字符串J.Troll返回名称及其长度,即该人姓名的字符

编号.

$ awk'$ 1 ==“ J.Troll” {打印长度($ 1)“” $ 1}'grade.txt

7 J.Troll

还有另一种方法,这里是双引号.

js 判断 仅有一个字符_java 判断非ascii字符_awk 判断空字符串

$ awk'开始{打印长度(“一个好男人”)}'

14

4.match

match测试目标字符串是否包含搜索字符的一部分. 您可以对搜索部分使用正则表达式,然后返回

返回值是成功排列的字符数. 如果未找到,则返回0. 第一个示例在ANCD中查找d. 因为不是

存在,因此返回0. 第二个示例在ANCD中查找D. 由于它的存在,返回到D在ANCD中出现的第一位置

设置字符数. 第三个示例在学生J.Lulu中寻找u.

$ awk'{BEGIN {print match(“ ANCD”,/ d /)}'

$ awk'{BEGIN {print match(“ ANCD”,/ C /)}}'

3

$ awk'$ 1 ==“ J.Lulu” {打印匹配($ 1,“ u”)} grade.txt

4

5.split

使用split返回字符串数组元素的数量. 它的工作方式如下: 如果有字符串,则包含指定的分隔符

Symbol-(例如AD2-KP9-JU2-LP-1)将其分成一个数组. 使用split指定定界符和数组名称. 这个

在示例中,命令格式为(“ AD2-KP9-JU2-LP-1”,parts_array,“-”),拆分后返回数组下标的数量,

结果

是4.

另一个示例使用了不同的定界符.

$ awk'{BEGIN {print split(“ 123#456#678”,myarray,“#”)}'

3

js 判断 仅有一个字符_java 判断非ascii字符_awk 判断空字符串

在此示例中,split返回数组myarray中的下标数目. 数组myarray的值如下:

Myarray [1] =“ 123”

Myarray [2] =“ 456”

Myarray [3] =“ 789”

6.sub

使用sub查找并替换第一次出现的模式. 字符串STR包含“ popedpopopill”,执行它

列子命令sub(/ op /,“ op”,STR). 当图案op首次出现时,将执行替换操作,返回结果如下:

“ pOPedpopepill”.

假设学生J. Troll的记录在grade.txt文件中具有相同的值,即“当前成绩点”和“最高成绩点”. 仅

将第一个更改为29,第二个保留为24,操作命令为sub(/ 26 /,“ 29”,$ 0),仅替换第一个.

位置24.

$ awk'$ 1 ==“ J.Troll”子(/ 26 /,“ 29”,$ 0)'grade.txt

L.Troll 07/99 4842布朗3 12 29 26

L.Transley 05/99 4712布朗2 12 30 28

7.substr

substr是一个非常有用的功能. 它根据起始位置和长度返回字符串的一部分. 示例如下:

$ awk'$ 1 ==“ L.Transley” {print substr($ 1,1,5)}'grade.txt

L.Tan

在上面的示例中,域1中指定的第一个字符开始,并返回前5个字符.

如果给定的长度值比字符串的长度大得多,awk将从起始位置返回所有字符. 要提取L. Tansley的姓氏,只需从第三个字符返回长度为7. 您可以输入长度99,awk返回相同的结果.

$ awk'{$ 1 ==“ L.Transley” {print substr($ 1,3,99)}'grade.txt

awk 判断空字符串_js 判断 仅有一个字符_java 判断非ascii字符

Transley

substr的另一种形式是返回字符串后缀或指定位置之后的字符. 在这里,您需要提供指定的字符串以及返回的字符串的起始位置. 例如,要从文本文件中提取姓氏,您需要在字段1中进行操作,并以第三个字符开头:

$ awk'{print substr($ 1,3)}'grade.txt

巨魔

Transley

另一个示例,在BEGIN部分中定义一个字符串,并返回从END部分中的第t个字符中提取的子字符串.

$ awk'{BEGIN STR =“几个好人”} END {打印substr(STR,7))grade.txt

好男人

8. 将字符串从外壳传递到awk

Awk脚本大多只是一行,并且很少用字符串表示. 通过将变量传递到awk命令行,这将很容易. 现在列举一些有关其基本原理的例子.

使用管道将备用字符串传递给awk并返回其长度.

$ echo“ Stand-by” | awk'{打印长度($ 0)}'

8

将文件名设置为变量,将输出通过管道传输到awk,然后返回不带扩展名的文件名.

$ STR =“ mydoc.txt”

$ echo $ STR | awk'{print subst($ STR,1,5)}'

mydoc

将文件名设置为变量,并将输出通过管道传输到awk,仅返回其扩展名.

$ STR =“ mydoc.txt”

$ echo $ STR | awk'{print substr($ STR,7)}'

txt


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

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

      • 先汪
        先汪

        只求唯凯源的不要觉得这和你家凯源魅力有啥关系

      • 金岭
        金岭

        听说大多都是在威海卫港区里被人家炸成的

      • 科特柯本
        科特柯本

        1

      热点图片
      拼命载入中...