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. 手机user agent大全下载 整理发布一批移动设备的user agent【分享】

    手机user agent大全下载 整理发布一批移动设备的user agent[分享] 很多人朋友在玩浏览器的时候 或者写软件的时候需要用到 user agent 这个东西 修改这个 可以使自己的浏览器 ...

  2. vim 多行注释

    多行注释: 1. 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来 2. 按大写字母I,再插入注释符,例如// 3. 按esc键 ...

  3. PostgreSQL的时间函数使用整理

    PG的时间函数使用整理如下 1.获取系统时间函数 select now(); --2012-05-12 18:51:59.562+08 select current_timestamp; --2012 ...

  4. Database JDBC Developer's Guide

    http://docs.oracle.com/database/121/JJDBC/datacc.htm#JJDBC28363

  5. LeetCode_Set Matrix Zeroes

    Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. 很挫的一个想 ...

  6. HashMap非线程安全分析

    通过各方资料了解,HashMap不是线程安全的,但是为什么不是线程安全的,在什么情况下会出现问题呢? 1. 下面对HashMap做一个实验,两个线程,并发写入不同的值,key和value相同,最后再看 ...

  7. cf448A Rewards

    A. Rewards time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  8. 【POJ3006】Dirichlet's Theorem on Arithmetic Progressions(素数筛法)

    简单的暴力筛法就可. #include <iostream> #include <cstring> #include <cmath> #include <cc ...

  9. Linux 块设备驱动 (一)

    1.块设备的I/O操作特点 字符设备与块设备的区别: 块设备只能以块为单位接受输入和返回输出,而字符设备则以字符为单位. 块设备对于I/O请求有对应的缓冲区,因此它们可以选择以什么顺序进行响应,字符设 ...

  10. python高级编程之元类(第3部分结束)

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #元编程 #new-style类带来了一种能力,通过2个特殊方法(_ ...