linux之awk命令
awk是一个非常棒的数据处理工具。相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个“字段”来处理。因此,awk 相当适合处理小型的数据处理。awk通常运行模式是这样的:
[root@www ~]# awk '条件类型1{动作1} 条件类型2{动作2} 。。。' filename
awk 后面接两个单引号并加上大括号来设置想要对数据进行的处理动作。awk 可以处理后续接的文件,也可以读取来自签个命令的standardoutput。但如前面所说的,awk主要是处理每一行的字段内的数据,而默认的字段的分隔符为空格键或[tab]键。举例来说,我们用 last 可以将登陆者的数据取出来,但我只想要取出账号与登录者的IP,且账号和IP之间以[tab]隔开
[root@www ~]# last -n 5 | awk '{print $1 "\t" $3}' <==可先用last -n 5 查看登录者数据,再进行操作
root 192.168.1.100
root 192.168.1.100
root 192.168.1.100
dmtsai 192.168.1.100
root Fri
上面是 awk 最常使用的动作。通过print 的功能将字段数据列出来!字段的分隔以空格或[tab] 隔开。第5行数据有点奇怪;这是因为数据格式的问题。所以使用awk的时候,请先确认一下你的数据,如果是连续性的数据,请不要有空格或[tab] 在内,否则就会像上面那样,发生误判。
另外,在每一行的每个字段都是有变量名称的,那就是$1,$2等变量名称。以上面的例子来说,root就是$1,因为它是第一列,至于192.168.1.100 是第三列,所以它就是 $3,后面以次类推。还有个变量$0,$0代表一整行数据的意思。
由此,上面5行当中,整个的awk处理流程是:
1.读入第一行,并将第一行数据填入$0,$1,$2等变量中;
2.依据条件类型的限制,判断是否需要进行后面的动作;
3.做完所有动作与条件类型;
4.若还有后续的“行”的数据,则重复上面1~3 的步骤,直到所有的数据都读完为止。
经过这样的步骤,你会晓得,awk 是以行为一次处理的单位,而以字段为最小的处理单位。那么awk 又怎么知道整个数据到底有几行和几列?这就需要 awk 的内置变量的帮忙了
NF: 每一行($0) 拥有的字段总数
NR: 目前awk 所处理的是 “第几行”数据
FS: 目前的分隔符,默认是空格
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
linux下kill 命令 以及 USR1 信号 解释
最近 在做 服务器搭建的一些工作,其中 用到了 日志 转存 的部分。 日志转存 是这么写的 /home/server/souledge/log/game.log { missingok copytruncate size 1 sharedscripts postrotate echo "start--------------" [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` mv /home/server/souledge/log/game.log.1 /home/server/souledge/log/game.`date -d "1 hour ago" +%Y%m%d%H` echo "end-----------------" endscript } 对于[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 产生了 兴趣, 1.[ -f ] 解释 [ 是 linux 命令, 不信, which...
- 下一篇
CentOS系统中dhcp的配置
1.dhcp的概念:dhcp即动态主机配置协议,负责ip地址的集中和动态分配管理 为了更好的理解dhcp,我举个例子:在某学生宿舍中有60台电脑,那么ip地址的分配和使用会有两种方式:一种是由网络管理人员分配给每个计算机一个固定的ip,再由用户自己设置在计算机上;另一种是由网络管理人员统一通过一台dhcp服务器来集中管理。只要在dhcp上设置好可分配的ip地址范围参数等,同时用户计算机中的ip地地址项设置为自动获得,b并设置dhcp服务器的地址,就可以从dhcp服务器上自动分配到一个地址。 在虚拟机或者真机中配置dhcp的时候,需要下载dhcp软件,用到yum命令,关于yum命令,我会在接下来的博客中详细介绍 2.dhcp的配置过程: 在配置dhcp的时候,为了验证是否配置成功,我们需要打开两个虚拟机,分别是desktop和server 下边的配置在desktop中完成,验证最终结果在server中 (1)在yum源中搜索dhcp软件 yum search dhcp (2)安装dhcp服务 yum install dhcp.x86_64 (3)cp /usr/share/doc/...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用