一、awk:按行取列
1.awk原理:根据指令信息,逐行的读取文本内容,然后按照条件进行格式化输出。
2.awk默认分隔符:空格、tab键,把多个空格自动压缩成一个。
3.awk的选项: awk ‘操作符 {动作}’处理对象
-F:指定分隔符,默认式空格
-v:变量复制
内置变量:$#:按行需要取出的第几个字段
$0:打印所有
NR:需要处理的行号
NF:处理行的字段个数
$NF:当前行的最后一个字段
FS:和F一样,都是指定分隔符
OFS:输出内容的分割符
RS:行分隔符,可以根据RS的设置把文件内容切成多个记录,也可以改变行的分隔符,默认式\n、回车、换行。
4.awk的命令展示:
awk如何打印文本内容
awk如何打印文本行号
awk如何即打印文本内容又可以打印行号
awk打印指定行
打印第3行和第5行
打印第3行到第5行
打印偶数行
打印奇数行
指定分隔符打印第五列
指定分隔符打印第1行到第3行的第五列
指定分隔符打印第1行和第3行的第五列
5.awk怎么使用文本过滤
打印包含root的行
打印以bash结尾的行
6.awk的BEGIN打印模式:awk ‘BEGIN{ };{ };END{ }’ 文件
7.awk的运算:
8.awk如何进行赋值:awk -v
9.awk以分隔符进行换行
10.awk条件判断打印
打印第三列大于999的所有行
打印第三列等于1000的所有行
11.awk的三元表达:打印第三列比第四列大的值(如果第三列的值大于第四列,则大的打印第三列,小的打印第四列)
12.awk的精确筛选:
$n(>< ==):用于比较数值
$n~"字符串":该字段包含某个字符串
$n!~"字符串":该字段不包含某个字符串
$n==“字符串”:该字段等于这个字符串
$n!="字符串":该字段不等于这个字符串
$NF:最后一列
只有第一列为root的行,打印它的第六列
13.awk的逻辑且和逻辑或
14.awk如何取小数点后的结果以及小数运算怎么取真数
15. 习题:监控cpu,内存和硬盘的根目录,超过80%提示用户,写成函数库的行,每天早上 的8.50分,执行一次脚本。
使用函数库分别算出cpu、内存及硬盘的使用率
给函数库赋值
给脚本设定执行时间:crontab -e
调用函数库:vim dyk.sh
查看结果:
16.使用awk获取 /etc
目录下所有文件的总大小
17.使用awk的两种方法获取网址的主机名
cat awk.sh | awk -F'[ .]+' '{print $2}'
cat awk.sh | awk '{print $2}' | awk -F. '{print $1}'