博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
awk学习笔记
阅读量:5729 次
发布时间:2019-06-18

本文共 853 字,大约阅读时间需要 2 分钟。

hot3.png

awk的工作流程:

将文件的一行读到内存,然后按分隔符将该行进行分段,其默认的分隔符是空格和TAB。

常用格式1:
awk /pattern/ {command1;command2.....}  file

用法1 指定分隔符 用-F'分隔符'
awk -F: '{print $1}' /etc/passwd

用法2 指定匹配位置用$n ~
awk -F: '$5 ~ /root/ {print $2}' /etc/passwd

常用格式2:
awk 'BEGIN{command}/pattern/{command1;command2....}'

用法3 用BEGIN{command}来指定分隔符(FS为AWK内置变量,表示分隔符)
awk 'BEGIN{FS=":"}$5 ~ /deamon/ {print $2}' /etc/passwd

用法4 用OFS变量设置输出分隔符(默认为空格)
awk 'BEGIN{FS=":";OFS="--"}$5 ~ /daemon/ {print $1,$2}' passwd.log

用法5 NF变量示例(NF表示每行的字段数)

awk 'BEGIN{FS=":"} {print NF}' passwd.log
或者awk -F: '{print NF}' passwd.log

用法6 NR变量(处理行在原文件中的行号)
awk '/^adm/{print NR}' passwd.log

用法7 自定义变量
awk 'BEGIN{FS=":";i=0}/sbin/{i++}END{print i}' passwd.log

解释:
  先定义一个变量i=0,查找匹配sbin的行,如有一行则i+1,所有行查找匹配完毕后执行print aa,实现统计匹配sbin的行数。
注意:
  引用变量不需要加$,在AWK中,只有引用$1,$2,$3...的时候才需要用$

转载于:https://my.oschina.net/xiangpang/blog/539155

你可能感兴趣的文章
Windows Server 2012 最详细的安装教程
查看>>
nginx nginx_upstream_check_module nginx-sticky-module 安装
查看>>
DNS显性+隐性URL转发原理
查看>>
Ubuntu系统redis安装部署入门
查看>>
我的友情链接
查看>>
使用Azure Storage进行静态Web托管
查看>>
网易有道 IP地址、手机号码归属地和身份证 查询接口API
查看>>
XT [2011-06-25]更新到0.41版本
查看>>
Linux服务篇之六:源码包构建LAMP架构配置
查看>>
鼠标停留在GridView某一行时行的颜色改变
查看>>
【v2.x OGE教程 14】控件使用
查看>>
nginx利用第三方模块nginx_upstream_check_module来检查后端服务器的健康情况
查看>>
系列3:WAS Liberty Profile hello mysql jdbc
查看>>
BFC 神奇背后的原理
查看>>
动态ACL(1)
查看>>
基础知识:python模块的导入
查看>>
Android MVC之我的实现
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
关于批处理-1
查看>>