awk
awk 是一个强大的linux命令 有强大的文本格式化能力,好比将一些文本数据格式化成专业的excel表的样式
awk语法
awk "{print $2}" zzz.txt #第二行
awk默认以空格为分隔符,且多个空格也识别为一个空格,作为分隔符
awk是按行处理文件,一行处理完毕,处理下一行,根据用户指定的分隔符去工作,没有指定则默认空格
指定了分隔符后,awk把每一行切割后的数据对应到内置变量
$0表示整行
$NF表示当前分割后的最后一列
倒数第二六可以写成$(NF-1)
awk '{print $1,$2,$3}' zzz.txt #获取1,2,3行内容
awk '{print "第一列:"$1,"第二列:"$2}' zzz.txt #自定义输出
awk 'NR==5' pwd.txt # 查看第五行
awk 'NR==1,NR==5' pwd.txt #查看地1-——————第5行
awk '{print NR,$0}' pwd.txt #NR等于行号 加上行号
awk '{print $(NF-1)}' zzz.txt #倒数第二行的内容
awk '{print $(NF)}' zzz.txt #最后一行的内容
ifconfig eth0 | awk 'NR==2{print $2}' #awk 输出ip
awk的分隔符有两种
输入分隔符,awk默认是空格,空白字符,英文是Field separator,变量名是FS
输出分隔符,output field separator, 简称OFS
awk -F ':' '{print $1}' /etc/passwd #输出passwd 文件中的用户名 -F 分隔符
awk -v name="周杰伦" 'BEGIN{print "我的名 字是?",name}'
awk -F':' '/^lsg/{print $1,$NF}' passwd #这个文件第一列和最后一列的内容
awk '/nologin$/{print NR, $0}' passwd #找出nologin 结尾的 带行号