Linux中“awk”命令的用法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
0、基本用法
awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理
awk
命令
格式如下[-F 分隔符]是可选的,因为awk使用空格,制表符作为缺省的字段分隔符,因此如果要浏览字段间有空格,制表符的文本,不必指定这个选项,但如果要浏览诸如/etc/passwd文件,此文件各字段以冒号作为分隔符,则必须指明-F选项
shell
读取用户输入的字符串发现|,代表有管道。|左右被理解为简单开发云主机域名
命令
,即前一个(左边)简单命令的标准输出指向后一个(右边)标准命令的标准输入
awk
会根据分隔符将行分成若干个字段,$0为整行,$1为第一个字段,$2 为第2个地段,依此类推…
为打印一个字段或所有字段,使用print命令。这是一个
awk
动作
/etc/passwd
的文件内容如下
举几个简单的小需求
1、只显示/etc/passwd的账户
2、显示/etc/passwd的第1列和第7列,用逗号分隔显示,所有行开始前添加列名start1,start7,最后一行添加,end1,end7
BEGIN语句在所有文本处理动作执行之前被执行,END在所有文本处理动作执行之后被执行
3、统计/etc/passwd文件中,每行的行号,每行的列数,对应的完整行内容
1、支持内置变量
上面示例中
NR
,和
NF
其实就是
awk
的内置变量,一些内置变量如下
2、支持函数
输出字活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看符串的长度## 输出为
14
将
/etc/passwd
的用户名变成大写输出## 输出为常用函数如下
3、支持条件操作,正则表达式匹配
显示/开发云主机域名etc/passwd中有daemon的行awk -F ‘:’ ‘$0 ~ /daemon/’ /etc/passwd
## 输出为输出第一个字段的第一个字符大于d的行## 输出为可以把流程控开发云主机域名制语句放到一个
脚本
中,然后调用
脚本
执行,如test.sh的内容如下用如下方式执行,效果一样## 输出为
5、应用场景
小编用awk进行文本分析比较少,主要用来写脚本
如一个weibo-interface-1.0.jar应用,启动脚本如下关闭脚本如下,
kill.sh
jps -l的输出如下还有就是关闭hadoop集群的所有DataNode节点(不知道hadoop的可以认为DataNode是一个集群应用),假如一个个机器jps,查看pid,kill。很麻烦,直接写了一个脚本,依次ssh到各个节点,然后执行如下命令即可jps的输出为关于Linux中“awk”命令的用法问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注开发云行业资讯频道了解更多相关知识。
本文从转载,原作者保留一切权利,若侵权请联系删除。
《Linux中“awk”命令的用法》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...