栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

awk学习记录

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

awk学习记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 前言
  • 一、awk基本格式


前言

提示:参考学习:https://edu.csdn.net/job/javabe_01/gml-d6688990de744b7fa45a0b473dbeff83


提示:以下是本篇文章正文内容,下面案例可供参考

一、awk基本格式

awk ‘BEGIN{ commands } pattern{ commands } END{ commands }’ file

// 一个awk脚本通常由BEGIN,通用语句块,END语句块组成,三部分都是可选的。
// 脚本通常是被单引号或双引号包住。
eg:
创建一个脚本:for i in {0…9} ;do echo “hello $i”>>file ;done
1、awk ‘BEGIN{ i=0 } { i++ } END{ print i }’ filename

2、awk ‘BEGIN{i=0} {print}’ file,输出所有行的内容,or (awk ‘{print}’ /etc/passwd,awk ‘{print $0}’ /etc/passwd)

常用参数:
NR : 表示记录数,在执行过程中对应于当前的行号
NF : 表示字段数,在执行过程中对应于当前的字段数。 print $NF答应一行中最后一个字段
$n : 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。
$0 : 这个变量包含执行过程中当前行的文本内容。
-F :分隔符,默认空格为分隔符。
eg:
1、awk -F":" ‘{print $1;print $2}’ /etc/passwd
以冒号为分隔符,输出第一个字段和第二个字段
2、awk -F: ‘{print $1,$3,$6}’ OFS=“t” /etc/passwd
输出字段1,3,6,以制表符作为分隔符

3、统计某目录下的文件占用空间
ls -l |awk -F" " ‘BEGIN {sum=0}{sum=sum+$5}END{print "total size is ",sum}’
分解:
a.可以先打印出size那个字段:
ls -l |awk -F" " ‘{print $5}’

b.再想办法讲打印出来的数字相加
注意:如果是变量,直接写变量名,不需要加$符号.
在awk中加$符号,表示第几个字段。(容易与shell变量格式用混淆)

4、打印出行号
awk -F: ‘{print NR,$0 }’ /etc/passwd.(参数之间用逗号隔开,打印出来用空格隔开。若参数之间没有用逗号隔开,打印出来的行号和内容不分隔。也可以自定义隔开的符号,如:awk -F: ‘{print NR “;”$0 }’ /etc/passwd,行号和内容以分号隔开)


//依次打印行号,字段数,最后字段值,制表符,每行内容
$ awk -F: ‘{print NR,NF,$NF,“t”,$0}’ /etc/passwd

//显示第5行
$ awk -F: ‘NR==5{print}’ /etc/passwd

//显示第5行和第6行
$ awk -F: ‘NR5 || NR6{print}’ /etc/passwd

//不显示第一行
$ route -n|awk ‘NR!=1{print}’

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/964968.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号