1.区域获取

substr(区域f,起始位置n1,获取范围n2)

解析:获取某个区域f内,从起始位置n1开始算起的n2个字符组成的字符串.如果n2不存在,则返回从n1开始到区域结束的内容.

例子:获取某个文件的类型属性

ll filename | awk '{print substr($1,1,1)}'

$1标示文件的权限区域,第一个数字1标示权限区域的首位,第二个数字1标示获取从首位开始的第一个字符.即类型.

awk的substr函数是从1开始计数

其他类似获取方法:变量的特殊使用.
解析:获取变量n1位置开始算起的n2个字符组成的字符串.${变量名:起始位置n1:获取范围n2}

例子:fd=$(ll filename);echo ${fd:0:1}

变量的获取是从0开始计数


2.区域替换

gsub(/匹配的正则r/,"替换后的字符串s",区域f)

解析:在区域f(若无,则默认是$0)内,将利用正则r匹配到的内容,替换为s

正则表达式,必须用//括起来

如果s是数字,则无需双引号,如果是字符串,必须用引号.

例子:

#echo $fd | awk '{gsub(/^test/,"test1",$NF);print $NF}'

test1.py

#echo $fd

-rwxr--r-- 1 root root 64 5月 6 14:40 test.py

其他类似获取方法:sed的替换

#echo $fd | sed 's/test/test1/'

sed无法将修改限定在某个区域

例如:替换第二个test为abcd

#echo "test1;test2" | sed '/test2/{s/test/abcd/}'

abcd1;test2

但是可以用awk限定仅修改第二个,例如:

#echo "test1;test2" | awk 'BEGIN{FS=";";OFS=";"}{gsub(/test/,"abcd",$2);print $0}'

test1;abcd2


3.获取字符串位置

index("范围字符串s1"或者区域字段f,"需要定位的字符串s2")

解析:在区域f或者字符串s1中,查找字符串s2的起始位置,如果找不到,返回0

例子:

# echo "12345678" | awk '{print index($0,"5")}'

5


4.获取字符串的长度

length("字符串"或区域f)

解析:返回字符串或者区域f的长度,如果不写,则返回$0长度

例子:

# echo "123 123 1234" | awk '{print length($3)}'

4

# echo "123 123 1234" | awk '{print length()}'

12


5.分割字符串形成数组

split("待分割的字符串s",数组a,分隔符r)

解析:用默认FS或者r将字符串s进行分割,然后形成以数字为下标的数组a,下标从1开始.

例子:

root@aaa103439-pc:~# cat test

a1a d2e a3a

b1b d2e b3b

c1c d2e c3c

root@aaa103439-pc:~# awk '{split($1,a,/1/);split($2,b,/2/);split($3,c,/3/);print a[1],b[1],c[1]}' test

a d a‍

b d b

c d c



awk之7 常用函数的解析的更多相关文章

  1. Python3.x的BeautifulSoup解析html常用函数

    Python3.x的BeautifulSoup解析html常用函数 1,初始化: soup = BeautifulSoup(html) # html为html源代码字符串,type(html) == ...

  2. numpy.random模块常用函数解析

    numpy.random模块中常用函数解析 numpy.random模块官方文档 1. numpy.random.rand(d0, d1, ..., dn)Create an array of the ...

  3. python重要的第三方库pandas模块常用函数解析之DataFrame

    pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...

  4. pandas模块常用函数解析之Series(详解)

    pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...

  5. PHP常用函数备用

    刚学习php的时候,我也为记忆php函数苦恼不已.认为干嘛记忆这么枯燥无味的东西呢?用的时候查一下手册不就行了吗?但是当时因为身在辅导机构,还是记忆了一大堆自己并不感兴趣的函数. 由此就想起来,小的时 ...

  6. 10月21日下午PHP常用函数

    函数四要素:返回类型  函数名  参数列表  函数体 //最简单的函数定义方式 function Show() { echo "hello"; } Show();//输出结果为he ...

  7. PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)

    PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr;  //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...

  8. PHP常用函数和常见疑难问题解答

    PHP常用库函数介绍 一.PHP字符串操作常用函数 1.确定字符串长度  int strlen(string str) 2.比较两个字符串 a. strcmp函数对两个字符串进行二进制安全的比较,并区 ...

  9. 最全的PHP常用函数大全

    PHP的一些常用函数 quotemeta() 函数在字符串中某些预定义的字符前添加反斜杠. quoted_printable_decode() 函数对经过 quoted-printable 编码后的字 ...

随机推荐

  1. css 溢出文本显示省略号

    这个标题其实已经是一个老生常谈的问题了.很多时候,比如网站最基本的文章列表,标题会很长,而显示列表的区域宽度却没有这么宽,这时候最正常的做法就是 让超出宽度的部分文字用省略号(…)来表示.通常做法是网 ...

  2. DAO 基础学习笔记

    一.DAO 1.概念: (1)Date Access Object(数据存取对象) (2)位于业务逻辑和持久化数据之间 (3)实现对持久化数据的访问 (4)类---> DAO --->数据 ...

  3. nodejs+express Mvc站点

    nodejs+express Mvc站点 像asp.net Mvc一样开发nodejs+express Mvc站点 首先,我是个c#码农.从事Mvc开发已然4个年头了,这两年前端MVC的兴起,我也跟风 ...

  4. Android使用xml中定义的动画效果

    Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.zqrl_out); animation.setFil ...

  5. MicrosoftSQLServer中的锁模式

    在SQL Server数据库中加锁时,除了可以对不同的资源加锁,还可以使用不同程度的加锁方式,即锁有多种模式,SQL Server中锁模式包括: 1.共享锁 SQL Server中,共享锁用于所有的只 ...

  6. 图论专题训练1-D(K步最短路,矩阵连乘)

    题目链接 /* *题目大意: *求出从i到j,刚好经过k条边的最短路; * *矩阵乘法的应用之一(国家队论文): *矩阵乘法不满足交换律,矩阵乘法满足结合律; *给定一个有向图,问从A点恰好走k步(允 ...

  7. Linux配置FTP服务器

    基于CentOS-6.5 1.先查看是否已安装:rpm -qa vsftpd 或 rpm -ql vsftpd 2.安装:yum install vsftpd -y 3.设置开机启动: chkconf ...

  8. Linux用户管理(笔记)

    用户:UID, /etc/passwd组:GID, /etc/group 影子口令:用户:/etc/shadow组:/etc/gshadow 用户类别:管理员:0普通用户: 1-65535    系统 ...

  9. hdu 5427 A problem of sorting(字符排序)

    Problem Description There are many people's name and birth in a list.Your task is to print the name ...

  10. javascript 执行环境,变量对象,作用域链

    前言 这几天在看<javascript高级程序设计>,看到执行环境和作用域链的时候,就有些模糊了.书中还是讲的不够具体. 通过上网查资料,特来总结,以备回顾和修正. 要讲的依次为: EC( ...