linux awk进阶篇
上一篇主要是awk的进本应用。本节是awk的进阶篇
ACTION:除去常用的print和printf还有以下几个
- expression:表达式 如$1>3
- control statements:控制语句,如if,while等
- compound statements:组合语句
- input statements :输入语句
- output statements:输出语句
control statements
if:
if(condition) statements
if(condition) statements else statements
if用法示例
uid>1000为普通用户,否则是root或者系统用户(centos7)
while:
while(condition) statements
do statements while(condition)
while语法示例
while中嵌套if
for:
for(expr1;expr2;expr3) statement
expre1,2,3分别为:初始表达式;终止条件;步长表达式
for示例
swith:
swith(expression){case value1 or /regxp/:statement;case value2 or /regxp2/:statement……default:statement}
next:结束对本行数据的处理直接进入下一行
next示例
数组:array
关联数组:array[index expression]
index expression:
可以使用任意字符串;
字符串必须用双引号引起来。
若引用一个数组中不存在的元素。awk会自动创建该元素,并且赋予其初始值——空字符或者数字0
特殊用法:使用for循环数组以遍历其中元素——for (i in array) body
array示例:
统计命令中的tcp状态出现次数
不是用BEGIN模式
练习题:
统计/etc/fstab文件中第三个字段(文件系统)出现的次数
统计/etc/fstab文件中所有单词分别出现的次数
首先使用for(expre1,expre2,expre3)遍历每行中的每个元素,然后保存在数组ws中。然后使用for(i in ws)遍历数组中的每一个元素。最后输出元素及其出现次数。
函数:内置函数和自定义函数
内置函数:
数值处理
rand():随机生成0~1之间的小数。
字符串处理
length([s]):返回指定字符串长度。
sub(r,s,[t]):将字符串t中第一次被模式r匹配的字符串替换成s。
gsub(r,s,[t]):将字符串t中所有被模式r匹配的字符串替换成s。
split(s,a,[r]):以r为分隔符切割字符串s,并将结果保存在数组a中。
linux awk进阶篇的更多相关文章
- Linux命令进阶篇-文件查看与查找
上一篇的博客对于Linux如何在不同目录下跳转和查看目录下内容做出了总结,主要靠cd和ls,很常见也很实用.但是你看到目录下面那么多不同花花绿绿的文件,心里是不是痒痒,是不是想进去一探究竟,有办法! ...
- Linux命令进阶篇之一
利用file命令查看那文件的类型 cd /etc 这里面的文件 命令:file 语法:file [-bLvz] 文件 解释:-b:显示结果,但是不显示文件名称 -L:直接显示符号链接所指向的文件的类型 ...
- linux shell 进阶篇、shell脚本编程-创建函数
使用函数 #!/bin/bash # testing the script function myfun { echo "This is an example of a function&q ...
- linux 命令进阶篇之二
一.预备知识 选取init的进程. cat :由第一行开始显示文件内容 tac:由最后一行开始显示,有没有发现和cat是反过来写的 more:一页一页的显示内容 less:与more相似,但是可以往前 ...
- Linux命令进阶篇之二
实验内容: cat :由第一行开始显示文件内容 tac:由最后一行开始显示,有没有发现和cat是反过来写的 more:一页一页的显示内容 less:与more相似, ...
- idea 插件的使用 进阶篇
CSDN 2016博客之星评选结果公布 [系列直播]零基础学习微信小程序! "我的2016"主题征文活动 博客的神秘功能 idea 插件的使用 进阶篇(个人收集 ...
- PHP学习笔记 - 进阶篇(11)
PHP学习笔记 - 进阶篇(11) 数据库操作 PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Syba ...
- Linux工具参考篇(网摘)
Linux工具参考篇 原文出处:[Linux Tools Quick Tutorial] 1. gdb 调试利器 2. ldd 查看程序依赖库 3. lsof 一切皆文件 4. ps 进程查看器 5. ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十一)redis密码设置、安全设置
警惕 前一篇文章<Spring+SpringMVC+MyBatis+easyUI整合进阶篇(九)Linux下安装redis及redis的常用命令和操作>主要是一个简单的介绍,针对redis ...
随机推荐
- (day29) 进程互斥锁 + 线程
目录 进程互斥锁 队列和堆栈 进程间通信(IPC) 生产者和消费者模型 线程 什么是线程 为什么使用线程 怎么开启线程 线程对象的属性 线程互斥锁 进程互斥锁 进程间数据不共享,但是共享同一套文件系统 ...
- C语言I博客作业06
这个作业属于哪个课程 C语言程序设计I 这个作业要求在哪里 作业链接 我在这个课程的目标是 熟悉分支结构 这个作业在那个具体方面帮助我实现目标 可以更完整的编写程序及博客园 参考文献 [参考文献](h ...
- TensorFlow初学教程(完整版)
1:你想要学习TensorFlow,首先你得安装Tensorflow,在你学习的时候你最好懂以下的知识: a:怎么用python编程: b:了解一些关于数组的知识: c:最理想的 ...
- 详细讲解IPython
ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数.学习ipython ...
- Django实现WebSSH操作物理机或虚拟机
我想用它替换掉xshell.crt之类的工具 WebSSH操作物理机或虚拟机 Django实现WebSSH操作Kubernetes Pod文章发布后,有小伙伴说咖啡哥,我们现在还没有用上Kuberne ...
- access 2013下载 access 2010下载 access 2007下载 Access 2003下载 安装交流的论坛
在网上搜索了一个access 2013下载 access 2010下载 access 2007下载 Access 2003下载 安装交流的论坛 office安装的常见问题: http://www.of ...
- 基于SkyWalking的分布式跟踪系统 - 微服务监控
上一篇文章我们搭建了基于SkyWalking分布式跟踪环境,今天聊聊使用SkyWalking监控我们的微服务(DUBBO) 服务案例 假设你有个订单微服务,包含以下组件 MySQL数据库分表分库(2台 ...
- redis 基本类型和命令(一)
一.Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). (1) string类型是Redis最基本的数 ...
- 【IT教程-Oracle】尚观Oracle白金级入门教程
链接: https://pan.baidu.com/s/1GMncQN6mpgaH3hZQjGelaA 提取码: qu6j
- 使用msfvenom生成木马
msfvenom Options: -p, --payload < payload> 指定需要使用的payload(攻击荷载).如果需要使用自定义的payload,请使用& #03 ...