欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > awk命令详解

awk命令详解

2024/11/14 12:52:20 来源:https://blog.csdn.net/weixin_74300052/article/details/143664056  浏览:    关键词:awk命令详解

文章目录

  • 🍊自我介绍
  • 🍊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}' filenameoptions: 可选参数-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.txtID	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 161

🍊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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com