文章目录
- 🍊自我介绍
- 🍊awk命令
- 简介
- 语法
- 🍊awk基础用法
- 基础用法
- 条件(pattern)
- 动作(action)
- 示例用法
- 新建一个student.txt内容如下:
- 测试命令
- 输出文件内容
- 格式输出
- awk输出磁盘信息
- 场景设计:当我们发现我们的/dev/sda1磁盘空间占用率的数字
- 🍊awk流程控制用法
- awk BEGIN关键字
- awk END关键字
你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~
🍊自我介绍
Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾” 和“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面的相关内容。
🍊awk命令
简介
AWK语言的基本功能是在文件或者字符串中基于指定规则浏览和抽取信息。awk抽取信息后,才能对其他文本操作。它是一个强大的文本分析工具。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,PeterWeinberger,和 Brian Kernighan 的 Family Name 的首字符。
注: sed命令常用于一整行的处理。而awk更倾向于把一行分为多个"字段"然后进行处理
awk的适用场景:
超大文件处理;
输出格式化的文本报表;
执行算数运算;
执行字符串操作等。
语法
格式:
awk [options] 'pattern {action}' filename
options: 可选参数
-F : 指明输入时用到的字段分隔符,默认分隔符为空格或者tab键
-v(var = VALUE) : 自定义变量
pattern : 匹配规则 //匹配规则满足时执行action
action : 某些计算操作/格式化数据/流程控制语句
filename: 文件名
示例:
awk -F ":" 'print $1' /etc/passwd //以':'作为分隔符,输出文件中的第一列
🍊awk基础用法
基础用法
awk '条件1 {动作1} 条件2 {动作2} ...' 文件名
条件(pattern)
一般使用关系表达式作为条件,条件符合的时候执行对应的动作
条件表达式示例: x >=10 判断 变量x是否大于等于10
动作(action)
格式化输出
流程控制语句
示例用法
新建一个student.txt内容如下:
ID NAME PHP
1 Li 88
2 Sc 66
3 Ga 88
测试命令
输出文件内容
awk 'print' student.txt
输出结果
ID NAME PHP
1 Li 88
2 Sc 66
3 Ga 88
输出第2列内容
awk 'print $2' student.txt
输出结果:
NAME
Li
Sc
Ga
格式输出
awk '{print $1 $3}' student.txt //不调整格式输出会发现连在一起
eg:
IDPHP
188
266
388
调整格式:
awk '{print $1 "\t" $3}' student.txt
ID PHP
1 88
2 66
3 88
awk输出磁盘信息
df -Th | grep tmpfs | awk '{print $1 "\t" $3}'
场景设计:当我们发现我们的/dev/sda1磁盘空间占用率的数字
df -Th | grep "dev/sda1" | awk '{print $6}' | cut -d "%d" -f 1
61
🍊awk流程控制用法
awk BEGIN关键字
介绍:
默认情况下,awk会从输入中读取一行文本,然后针对这行数据执行程序脚本,但是有时可能需要在处理数据前运行一些脚本命令,这就需要使用BEGIN关键字。
格式:
BEGIN{commands}
功能:在执行awk命令前,先执行BEGIN对应的动作
示例:
awk 'BEGIN{print "test star!"}{print $1 "\t" $3}' student.txt
test star!
ID PHP
1 88
2 66
3 88
awk END关键字
解释:和BEGIN关键字相对应,END关键字允许我们指定一些脚本命令,awk会在读完数据后执行它们,例如:
cat /etc/passwd | tail -1 |awk -F ":" 'BEGIN{"This is a passwd"} {print $2} END {print "game over"}'
This is a passwd
x
game over