• awk 字符串函数


    awk

    提供了许多强大的字符串函数,见下表:

     

    awk

    内置字符串函数

     

    gsub(r,s)    

    在整个

    $0

    中用

    s

    替代

    gsub(r,s,t)    

    在整个

    t

    中用

    s

    替代

    index(s,t)    

    返回

    s

    中字符串

    t

    的第一位置

     

    length(s)    

    返回

    s

    长度

     

    match(s,r)    

    测试

    s

    是否包含匹配

    r

    的字符串

     

    split(s,a,fs)    

    fs

    上将

    s

    分成序列

    sprint(fmt,exp)    

    返回经

    fmt

    格式化后的

    exp 

    sub(r,s)    

    $0

    中最左边最长的子串代替

    substr(s,p)    

    返回字符串

    s

    中从

    p

    开始的后缀部分

     

    substr(s,p,n)    

    返回字符串

    s

    中从

    p

    开始长度为

    n

    的后缀部分

     

    详细说明一下各个函数的使

    用方法。

     

     

    gsub

    函数有点类似于

    sed

    查找和替换。它允许替换一个字符串或字符为另一个字符串或字

    符,并以正则表达式的形式执行。第一个函数作用于记录

    $0

    ,第二

     

    gsub

    函数允许指定

    目标,然而,如果未指定目标,缺省为

    $0

     

    index(s,t)

    函数返回目标字符串

    s

    中查询字符串

    t

    的首位置。

    length

    函数返回字符串

    s

    字符

     

    长度。

    match

    函数测试字符串

    s

    是否包含一个正则表达式

    r

    定义的匹配。

    split

    使用域分隔

    fs

     

    字符串

    s

    划分为指定序列

    a

    sprint

    函数类似于

    printf

    函数

    (

    以后涉及

    )

    返回基本输出格式

    fmt

     

    结果字符串

    exp

    sub(r,s)

    函数将用

    s

    替代

    $0

    中最左边最长的子串,该子串被

    (r)

    匹配。

     

    sub(s,p)

    返回字符串

    s

    在位置

    p

    后的后缀。

    substr(s,p,n)

    同上,并指定子串长度为

    n

     

    现在看一看

    awk

    中这些字符串函数的功能。

     

     

    1.gsub 

    要在整个记录中替换一个字符串为另一个,使用正则表达式格式,

    /

    目标模式

    /

    ,替换模式

     

    /

    。例如改变学生序号

    4842

    4899

     

     

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

    J.Troll 07/99 4899 Brown-3 12 26 26 

     

    echo "i am hifdafafdst"|awk '{gsub(/am/,"abcc",$0);print $0}' 

    i abcc hifdafafdst 

     

    2.index 

    查询字符串

    s

    t

    出现的第一位置。必须用双引号将字符串括起来。例如返回目标字符串

     

    Bunny

    ny

    出现的第一位置,即字符个数。

     

     

    $ awk 'BEGIN {print index("Bunny", "ny")} grade.txt 

     

    3.length

  • 相关阅读:
    1583: [Usaco2009 Mar]Moon Mooing 哞哞叫
    1734: [Usaco2005 feb]Aggressive cows 愤怒的牛
    1596: [Usaco2008 Jan]电话网络
    1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果
    机器学习笔记(2)单变量线性回归
    P4编程环境搭建遇到的问题与解决方法
    P4编程环境搭建
    机器学习笔记(1)监督学习和无监督学习
    阅读 用P4对数据平面进行编程
    Mininet实验 MAC地址学习分析
  • 原文地址:https://www.cnblogs.com/mfryf/p/4241317.html
Copyright © 2020-2023  润新知