awk的常用内置函数的使用【转】
手把手教你在linux下熟悉使用awk的指令结构 (15)
大家好,今天和大家说一下awk吧。反正正则 早晚也要和大家说,不如一点一点和大家先交代清楚了,省得以后和大家说的时候,大家有懵的感觉。。。
其实正则里分为基础正则,和扩展正则。基础正则一般的命令就是grep和sed。而awk和egrep不止可以在基础正则内使用,还可以在扩展正则内使用。之前咱们见过sed了,其实grep和sed差不多,只是基本的语法有出入。而今天和大家说的awk,其实使用方法和egrep也差不多。
好吧。还是照例先开始今天的理论方面的东西吧。
awk 指令结构格式
1、确保整个awk命令用单引号括起来
2、确保命令内所有引号成对出现
3、确保用花括号括起动作语句,用圆括号括起条件语句
4、确保动作语句打印的字符串及转义字符用双引号引起来。
awk条件操作符
awk条件逻辑操作符
awk内置变量
awk中使用操作符,基本表达式可以划分为数字型,字符串型,变量型,域,数组元素
赋值操作符 = += *= /- %= ^=
条件表达操作符 ?
并、与、非 || && !
匹配操作符 ~ !~
关系操作符 < <= == != >>
算术操作符 + - * / % ^
前缀和后缀 ++ --------------------------------------------------------------------------------------------------------
awk的常用内置字符串函数
E.G
原例文:
[root@localhost ~]# cat wow
M.Tansley / Green
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
1)将整篇wow中的4全局替换成999
[root@localhost ~]# awk 'gsub(/4/,999)' wow
M.Tansley / Green
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
或者
[root@localhost ~]# awk 'gsub(/4/,999,$0)' wow //默认就是$0,可以不加
M.Tansley / Green
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
2)将用户名为M.Tansley所在行所有4替换成999
[root@localhost ~]# awk '{if($1=="M.Tansley") gsub(/4/,999); print $0}' wow
M.Tansley / Green
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
3)将用户名为M.Tansley所在行第三列的所有4替换成999
[root@localhost ~]# awk '{if($1=="M.Tansley") gsub(/4/,999,$3); print $0}' wow
M.Tansley / Green
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
4)将用户名为M.Tansley所在行第三列的所有4替换成999,并且仅显示替换行
[root@localhost ~]# awk '{if($1=="M.Tansley") {gsub(/4/,999,$3); print $0}}' wow
M.Tansley / Green
5)将用户名为M.Tansley所在行第一个出现的4替换成999,
[root@localhost ~]# awk '{if($1=="M.Tansley") sub(/4/,999); print $0}' wow
M.Tansley / Green
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
5)将用户名为M.Tansley所在行第一个出现的4替换成999 , 并且仅显示替换行
[root@localhost ~]# awk '{if($1=="M.Tansley") {sub(/4/,999); print $0}}' wow
M.Tansley / Green
6)查询字符串Bunny中ny是第几个出现的字符。
[root@localhost ~]# awk 'BEGIN {print index("Bunny","ny")}' grade.txt
7)查询字符串J.Troll的字符长度是多少?
[root@localhost ~]# awk '$1=="J.Troll" {print length($1),$1}' grade.txt
J.Troll
8)分别测试字符串“ANCD”中是否包含字符 d 或 C 或 D,如果没包含返回字符0,如果包含返回时第几个出现
字符。
[root@localhost ~]# awk 'BEGIN {print match("ANCD",/d/)}'
[root@localhost ~]# awk 'BEGIN {print match("ANCD",/C/)}'
[root@localhost ~]# awk 'BEGIN {print match("ANCD",/D/)}'
9)显示字符串L.Tansley中从第1个字符(包含)开始的后面共5个字符
[root@localhost ~]# awk '$1=="L.Tansley" {print substr($1,1,5)}' grade.txt
L.Tan
显示字符串L.Tansley中从第2个字符(包含)开始的后面共3个字符
[root@localhost ~]# awk '$1=="L.Tansley" {print substr($1,2,3)}' grade.txt
.Ta
10)用printf格式化awk的输出
[root@localhost ~]# awk 'BEGIN{printf
"%-60s","-------------------------------------------------------------"}{printf
"%-15s %s %-15s %s %s",$,"|",$,"|",$}' grade.txt
M.Tansley | |
J.Lulu | |
P.Bunny | |
J.Troll | |
L.Tansley | |
[root@localhost ~]# awk 'BEGIN{printf "%-39s","----------------------------------------";printf
"%-15s %s %-15s %s %-1s %s","name","|","student_id","|","age","|";printf
"%-52s","----------------------------------------"}{printf
"%-15s %s %-15s %s %-3s %s",$,"|",$,"|",$,"|"}END{printf
"%-39s","----------------------------------------"}' grade.txt
name | student_id | age |
----------------------------------------
M.Tansley | | |
J.Lulu | | |
P.Bunny | | |
J.Troll | | |
L.Tansley | | |
----------------------------------------------------------------------------------------------------------------------------
今天的课程,就讲解到这里吧。
实在是不知道要写什么了,周末下午回北京,这车堵的。。。实在是累坏了。晚上又帮一个粉丝一个散件一个散件的攒机器。终于是又给他省了一笔钱啊。。。写完了才发现,昨天你们都没给我评论今天具体要写什么。。。我这还是突然想到之前只写了sed,今天打算把awk写完,才写的这个。。。
你们的基础如果都没问题的话,那我明天不写基础的东西了。。。实在是不知道大家需要什么东西啊,是不是都感觉随便搭建一个服务很有学习效果?那样学习的更有感觉???那为什么看vi/vim的和YUM的,也很多啊。。。苦恼中。。
awk的常用内置函数的使用【转】的更多相关文章
- MYSQL常用内置函数详解说明
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
- Python常用模块中常用内置函数的具体介绍
Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...
- MySQL学习笔记_7_MySQL常用内置函数
MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. ...
- PYTHON语言之常用内置函数
一 写在开头本文列举了一些常用的python内置函数.完整详细的python内置函数列表请参见python文档的Built-in Functions章节. 二 python常用内置函数请注意,有关内置 ...
- SqlServer常用内置函数
--======================================= -- SQL常用内置函数 --======================================= --判 ...
- Python的常用内置函数介绍
Python的常用内置函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.取绝对值(abs) #!/usr/bin/env python #_*_coding:utf-8_ ...
- python中的运算符及表达式及常用内置函数
知识内容: 1.运算符与表达式 2.for\while初步了解 3.常用内置函数 一.运算符与表达式 python与其他语言一样支持大多数算数运算符.关系运算符.逻辑运算符以及位运算符,并且有和大多数 ...
- python第十八课——常用内置函数
常用内置函数:round(): print(round(3.14),round(3.99)) print(round(3145.926,-2),round(413.575,2)) abs(): pri ...
- php2go - Go 实现 PHP 常用内置函数
[转]http://www.syyong.com/Go/php2go-Use-Golang-to-implement-PHP-s-common-built-in-functions.html 使用Go ...
随机推荐
- java中的变量各占得字节数
boolen,8位1个字节int,32位,4个字节float,32位 4个字节double,64位8个字节char 16位,2个字节byte 8位1个字节short 16位 2个字节long 64位 ...
- matplotlib删除地图投影上的等值线及风场
[前言]最近在编写一个气象应用程序,用来显示某一时刻某一地区的气温等值线和风场,程序主要用到了第三方库matplotlib及Basemap.在编写的过程中发现,如果不进行擦除操作直接绘制新的等值线或风 ...
- ORACLE创建映射
create synonym table_name for aa.table_name
- CF1083C Max Mex 线段树
题面 CF1083C Max Mex 题解 首先我们考虑,如果一个数x是某条路径上的mex,那么这个数要满足什么条件? 1 ~ x - 1的数都必须出现过. x必须没出现过. 现在我们要最大化x,那么 ...
- Linux内核分析期中知识点总结
Linux内核分析期中知识点总结 1. 计算机是如何工作的 存储程序计算机工作模型:冯诺依曼体系结构 X86汇编基础 会变一个简单的C程序分析其汇编指令执行过程 2. 操作系统是如何工作的 函数调用堆 ...
- PyQt5整体介绍
1 PyQt5整体介绍 PyQt5是基于图形程序框架Qt5的Python语言实现,由一组Python模块构成. PyQt5的官方网站是:www.riverbankcomputing.co.uk. Py ...
- Cloudstack介绍(一)
云计算的出现 基本上,云计算只是一种把 IT 资源当作服务来提供的手段.几乎所有 IT 资源都可以作为云服务来提供:应用程序.计算能力.存储容量.联网.编程工具,以至于通信服务和协作工具. 云计算最早 ...
- P3866 [TJOI2009]战争游戏
P3866 [TJOI2009]战争游戏 题目背景 小R正在玩一个战争游戏.游戏地图是一个M行N列的矩阵,每个格子可能是障碍物,也可能是空地,在游戏开始时有若干支敌军分散在不同的空地格子中.每支敌军都 ...
- python 几种不同的格式化输出
1. % %是最常用的格式化输出形式,后面接类型,%s,%d,%c等等 name = input() print('I am %s' % name) 2.format format也是常用格式化输出 ...
- python---CRM用户关系管理
Day1:项目分析 一:需求分析 二:CRM角色功能介绍 三:业务场景分析 销售: .销售A 从百度推广获取了一个客户,录入了CRM系统,咨询了Python课程,但是没有报名 .销售B 从qq群获取一 ...