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 ...
随机推荐
- OptimalSolution(2)--二叉树问题(1)遍历与查找问题
一.二叉树的按层打印与ZigZag打印 1.按层打印: 1 Level 1 : 1 / \ 2 3 Level 2 : 2 3 / / \ 4 5 6 Level 3 : 4 5 6 / \ 7 8 ...
- Kafka集群的安装和部署
一.Kafka的下载与解压 http://kafka.apache.org/downloads.html下载kafka_2.11-1.1.1.tgz.gz并解压到/home/jun下 [jun@mas ...
- QlikSense主题开发
// 主题是qliksense 2018年2月版提出,4月版正式实施,其实就是去修改sense默认的.json文件和.css文件 { // 定义自定义主题是否从默认主题(Sense Classic)继 ...
- 什么是Viewport
什么是Viewport 手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机 ...
- Spring使用@Async注解
本文讲述@Async注解,在Spring体系中的应用.本文仅说明@Async注解的应用规则,对于原理,调用逻辑,源码分析,暂不介绍.对于异步方法调用,从Spring3开始提供了@Async注解,该注解 ...
- rsync的笔记整理
Rsyncd数据同步工具 1.什么是Rsyncs? Rsync(Remote synchronization)是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsy ...
- 汇编窥探Swift String的底层
String(字符串),是所有编程语言中非常重要的成员,因此非常值得去深入研究.众所周知,字符串的本质是字符序列,由若干个字符组成.比如字符串 "iOS" 由 'i'.'O'.'S ...
- vue-socket.io 及 egg-socket.io 的简单使用
egg-socket.io 的使用 官方文档看这里 egg-socket.io 接下来的内容其实与文档里差不多,介意的童鞋略过就好,目前只是简单的引入,下周往后会写复杂些的逻辑,在后面的文章会介绍. ...
- podman初试-和docker对比
podman初试-和docker对比 1,什么是docker? Docker 是一个开源的应用容器引擎,属于 Linux 容器的一种封装,Docker 提供简单易用的容器使用接口,让开发者可以打包他们 ...
- 前端开发之VSCode扩展
1.Chinese (Simplified) Language Pack for Visual Studio Code——中文语言包 2.Beautify——代码格式化工具 3.HTML Snippe ...