什么是awk?

AWK是一个强大的文本处理工具。可以使用awk读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

使用awk的基本格式

awk [options] ‘command’ file(s)
command 由pattern和action两部分组成
command 的格式 为 pattern {action}
1. pattern可以是正则表达式或者关系表达式
2. action 包含两部分:

(1). 内置函数
print printf getline 等
(2). 控制指令
if else while

awk options配置选项

  • -F filed-separator(分割符,默认为空格)
    例子:
#打印所有用户的用户名、UID、GID
#内置变量$1 $3 $4的使用可以参考下面的awk内置变量的说明及
awk -F ':' '{printf "USER:%-20s UID:%10i GID:%10i\n",$1,$3,$4}' /etc/passwd

awk内置变量

  • $0: 表示当前行
  • $1: 表示每行的第一个字段
  • $2: 表示每行的第二个字段
  • ….
  • *$n: 表示每行的第三个字段
  • NR: 每行的行号
  • NF: 每行的字段数

例子:

#在上一个例子的基础上添加行号、文件名、字段数
awk -F ':' '{printf "LineNUmber:%5i | USER:%-20s | UID:%10i | GID:%10i | FILENAME:%10s|NF:%10i\n",NR,$1,$3,$4,FILENAME,NF}' /etc/passwd

awk逻辑判断式

awk 中的逻辑判断式可以是正则表达式或者关系表达式

~,!~:正则表达式

例子: 打印m开头的用户名

$awk -F ':' '$1~/^m.*/{print $1}' /etc/passwd

对正则表达式取反,输出正则表达式匹配行的补集

$awk -F ':' '$1!~/^m.*/{print $1}' /etc/passwd

==,!=,<,>: 逻辑表达式

例子: 判断UID的大小,输出UID大于100的用户名和UID

$awk -F ':' '$3>100{print $1,$3}' /etc/passwd

例子:输出UID不等于100的用户名和UID

$awk -F ':' '$3 != 100{print $1,$3}' /etc/passwd

awk BEGIN代码块、END代码块

BEGIN{command1}pattern{command2}END{command3}
例子 :在开始添加表头,在结尾添加表尾

awk -F ':' 'BEGIN{print "LineNum TotalColNum User UID"}{print NR,NF,$1,$3}END{print "-----"FILENAME"---------"}' /etc/passwd

awk使用实例

  • 统计当前目录文件总和
 ls -l|awk 'BEGIN{size=0}{size+=$5}END{print "size is "size/1024/1024"M"}'
  • 统计用户数
awk -F ':' 'BEGIN{count=0}$1!~/^$/{count++}END{print " count = "count}' /etc/passwd
  • 输出UID大于100的用户名以及在输出的行集合中的行号
awk -F ':' 'BEGIN{count=0}{if ($3 >100 ) name[count++]=$1}END{ for (i=0;i<count;i++) print i,name[i]}' /etc/passwd
  • 统计每种网络状态的连接的数量
netstat -anp | awk '$6~/CONNECTED|LISTEN/{sum[$6]++}END{for (i in sum) print i,sum[i]}'

awk命令入门的更多相关文章

  1. Linux Shell脚本入门--awk命令详解

    简单使用: awk :对于文件中一行行的独处来执行操作 . awk -F :'{print $1,$4}'   :使用‘:’来分割这一行,把这一行的第一第四个域打印出来 . 详细介绍: AWK命令介绍 ...

  2. awk 命令使用入门

    Linux 下处理和分析文本文件内容,AWK 命令是一个强有力的工具.特别是文件内容是以行和列的形式排版的时候,AWK 就是命令行界的 Excel 啊! 简单的 awk 命令可以直接在命令行中使用,复 ...

  3. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  4. AWK命令学习

    使用方法 awk 'pattern {action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到 ...

  5. awk 命令

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  6. [Linux] linux awk命令详解

    reference : http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于g ...

  7. awk命令简单介绍

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  8. Linux的awk命令

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  9. awk命令--update20150120

    简介 awk是一个强大的文本分析工具,把文件逐行读入,以空格为默认分隔符分割成field,切开的部分再进行各种分析处理. 模式和动作: 任何awk语句都是由模式和动作组成,模式部分决定动作语句何时触发 ...

随机推荐

  1. Spring Boot 2.X(十九):集成 mybatis-plus 高效开发

    前言 之前介绍了 SpringBoot 整合 Mybatis 实现数据库的增删改查操作,分别给出了 xml 和注解两种实现 mapper 接口的方式:虽然注解方式干掉了 xml 文件,但是使用起来并不 ...

  2. 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第五节:数据流处理的那些事儿

    为什么说到数据流了呢,因为上一节中介绍了一下异步发送请求.同样,在数据流的处理上,C#也为我们提供几个有用的异步处理方法.而且,爬虫这生物,处理数据流是基础本能,比较重要.本着这个原则,就聊一聊吧. ...

  3. python爬虫——urllib使用代理

    收到粉丝私信说urllib库的教程还没写,好吧,urllib是python自带的库,没requests用着方便.本来嘛,python之禅(import this自己看)就说过,精简,效率,方便也是大家 ...

  4. Python工具类(一)—— 操作Mysql数据库

    如何调用直接看__main__函数里如何调用此工具类就阔以啦! # encoding=utf-8 import pymysql # 导入所有Mysql配置常量,请自行指定文件 from conf.se ...

  5. Oracle GoldenGate for BigData-Kafka

    0. Env list:Oracle Linux:6.10Oracle DB 11.2.0.4OGG4Ora:19.1OGG4BD:19.1 1.Install package for OCI ins ...

  6. 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! Spring Cloud Eureka 基于Netflix Eureka做了二次封装(Spring Clo ...

  7. Android教程2020 - RecyclerView使用入门

    本文介绍RecyclerView的使用入门.这里给出一种比较常见的使用方式. Android教程2020 - 系列总览 本文链接 想必读者朋友对列表的表现形式已经不再陌生.手机上有联系人列表,文件列表 ...

  8. Matplotlib API汉化 Pyplot API

    https://www.cnblogs.com/chenxygx/p/9554443.html

  9. ios--->ios沙盒总结

    ios沙盒总结 沙盒介绍 iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等 ...

  10. SpringCloud与微服务Ⅳ --- Rest微服务构建案例工程模块

    一.父工程搭建 父工程pom: <?xml version="1.0" encoding="UTF-8"?> <project xmlns=& ...