第八周笔记

awk 文本三剑客之一,文本处理工具

awk分为Gawk Pawk Dawk Centos用的是Gawk
模式扫描处理的语言
/user/bin/awk awk的路径

awk的使用语法
awk [选项] `program` var=value file…..(变量赋值)
awk [options] ‘program’ var=value file…
awk [options] -f programfile var=value file… -f 调用语言文件
awk [options] ‘BEGIN{ action;… } pattern{ action;… } END{ action;… }’ file …
awk 程序通常由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块,共3部
分组成
program通常是被单引号或双引号中

选项:
-F 指明输入时用到的字段分隔符
-v var=value: 自定义变量

行: 记录record 定义分隔符 一个分隔符算一行 (分隔符自定义 默认是空格)
列:字段 或者 域field 或者 属性 分割符之前的任意分开的算一个字段

基本格式:awk [options] ‘program’ file…
program:pattern{action statements;..}
pattern和action:
• pattern部分决定动作语句何时触发及触发事件
BEGIN,END
• action statements对数据进行处理,放在{}内指明
print, printf(打印里面的内容)
分割符、域和记录
• awk执行时,由分隔符分隔的字段(域)标记$1,$2..$n称为域标识。$0为所有域,
注意:和shell中变量$符含义不同
• 文件的每一行称为记录
• 省略action,则默认执行 print $0 的操作

awk的工作原理
第一步:执行BEGIN{action;… }语句块中的语句 BEGIN经常用于处理表头(开始)
 第二步:从文件或标准输入(stdin)读取一行,然后执行pattern{ action;… }语句块,它
逐行扫描文件,从第一行到最后一行重复这个过程,直到文件全部被读取完毕。
 第三步:当读至输入流末尾时,执行END{action;…}语句块 end做汇总用
 BEGIN语句块在awk开始从输入流中读取行之前被执行,这是一个可选的语句块,比如
变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句块中
 END语句块在awk从输入流中读取完所有的行之后即被执行,比如打印所有行的分析
结果这类信息汇总都是在END语句块中完成,它也是一个可选语句块
 pattern语句块中的通用命令是最重要的部分,也是可选的。如果没有提供pattern语句
块,则默认执行{ print } ,即打印每一个读取到的行,awk读取的每一行都会执行该语句块

print格式: print item1, item2, …
 要点:
(1) 逗号分隔符
(2) 输出的各item可以字符串,也可以是数值;当前记录的字段、变量或awk的表达式
(3) 如省略item,相当于print $0
示例:
awk ‘{print “hello,awk”}’

awk –F: ‘{print}’ /etc/passwd
awk –F: ‘{print “wang”}’ /etc/passwd
awk –F: ‘{print $1}’ /etc/passwd
awk –F: ‘{print $0}’ /etc/passwd
awk –F: ‘{print $1”\t”$3}’ /etc/passwd (\t)tab键 用换行符作为分割符
tail –3 /etc/fstab |awk ‘{print $2,$4}’ 倒数三行的$2$4字段

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99003

(0)
胖哒胖哒
上一篇 2018-05-20
下一篇 2018-05-20

相关推荐

  • 文件管理

    window系统是多根架构,linux是多根架构 2.手动挂载光盘 mount /dev/sr0 /mnt (只有root用户才能使用) /proc 看到是内存中的数据,看的都是磁盘上不存在的,修改里面的内容会立即生效。 echo ‘- – -’ > /sys/class/scsi_host/host2/scan 新加的硬盘不重启也能被识别…

    Linux笔记 2018-07-29
  • 笔记

    LINUX中查看路由表的命令 route -nIP地址 有类的 无类的无类:网络ID ,主机ID不确定 (32位以内的)CIDR 无类域间路由无类ID要与netmask(子网掩码)一起用 用子网掩码(也是32位的2进制数)来确定无类ID的网络ID和主ID netmask对应的是1IP/网络ID位数255.255.0.000000000 010000000 1…

    Linux笔记 2018-05-01
  • 第八周作业

    1、简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理
    2、描述awk命令用法及示例(至少3例)
    3、描述awk函数示例(至少3例)

    Linux笔记 2018-06-29
  • 虚拟化

    CPU虚拟化: 1、模拟:emulation; 2、虚拟:virtualization; a、完全虚拟化(full-virtualization):BT:二进制翻译(软件)、HVM:硬件辅助的虚拟化(硬件) b、半虚拟化(para-virtualization):   Memory虚拟化: 进程:线性地址空间 内核:物理地址空间 MMU   vir…

    2018-07-11
  • Linux软件管理

      **rpm** 查寻rpm -q httpd //精确查找已安装的包的全名rpm -qa |grep httpd //查找所有以httpd开头的rpm包rpm -ql httpd //查寻安装httpd包进生成的文件 rpm -f :查看置顶的文件由哪个程序包安装生成 rpm -p rpm file :针对尚未安装的程序包文件做查询操作 rpm…

    Linux笔记 2018-05-13
  • Blog Day 1:在Windows下搭建Linux学习环境

    By:Alvin Lin
    No:M30-43
    Date:2018-04-01

    -目录-
    第零部分:安装VMware Workstations 12 虚拟机软件程序(Windows平台)
    第一部分:创建虚拟机
    第二部分:安装CentOS6.9
    第三部分:安装CentOS7.4

    2018-04-01