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}' 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913199.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Hadoop实训】Hive 数据操作②

延续上一篇文章,不懂的宝子们请看以下链接: 【Hadoop实训】Hive 数据操作①-CSDN博客 目录 一、Group by 语句 (1)、计算emp表每个部门的平均工资 (2)、计算emp表每个部门中每个岗位的最高工资 二、Having 语句 (1)、求每个部门的平均工资 (2)、求每个…

nginx的相关命令

nginx的启用和停止有多种方式1、nginx服务的信号控制;2、nginx的命令行控制。 1、信号控制 ps -ef | grep nginx 可以查询跟nginx有关的所有线程。 有一个master进程和worker进程 我们作为管理员,只需要通过master进程发送信号来控制nginx&#xff0c…

【SpringMVC】——Cookie和Session机制

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:实践 1:获取URL中的参数 (1)PathVariable 2&…

31.校园志愿者管理系统(基于springboot和vue的Java项目)

目录 1.系统的受众说明 2.开发技术与环境配置 2.1 SpringBoot框架 2.2Java语言简介 2.3 MySQL环境配置 2.4 MyEclipse环境配置 2.5 mysql数据库介绍 2.6 B/S架构 3.系统分析与设计 3.1 可行性分析 3.1.1 技术可行性 3.1.2 操作可行性 3.1.3经济可行性 3.4.1 …

Android下的系统调用 (syscall),内联汇编syscall

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 什么是系统调用 (syscall) 系统调用是操作系统提供给应用程序的一组接口,允许用户空间程序与内核进行交互。 在 Android(基于 Linux …

linux-vlan

# VLAN # 1.topo # 2.创建命名空间 ip netns add ns1 ip netns add ns2 ip netns add ns3 # 3.创建veth设备 ip link add ns1-veth0 type veth peer name ns21-veth0 ip link add ns3-veth0 type veth peer name ns23-veth0 # 4.veth设备放入命名空间,启动接口 ip link set n…

浙江大学高等数学研究所已变样

跟我199X年春季到访相比,现改名为“研究院”,说是2017年建立的,刘克峰(1965-,研究黎曼几何,加州洛杉矶大学教授)已退位,励建书(1959-,香港科技大学教授&#…

使用 AMD GPU 上的 Whisper 进行语音转文字

Speech-to-Text on an AMD GPU with Whisper — ROCm Blogs 2024年4月16日,作者:Clint Greene. 介绍 Whisper是由 OpenAI 开发的高级自动语音识别(ASR)系统。它采用了一个简单的编码器-解码器 Transformer 架构,其中…

统信UOS开发环境支持rust

集成了Rust编译器和包管理工具,支持系统级编程、网络应用等多场景,为开发者提供丰富的库支持。 文章目录 一、环境部署1. rust开发环境安装2. rust开发环境配置二、代码示例三、常见问题1. 借用和所有权问题2. 编译器错误和警告一、环境部署 1. rust开发环境安装 rust是一门…

上海沪尚茗居干货分享:码住这4步,投影仪不再吃灰

在追求高品质家庭娱乐的今天,投影仪已成为年轻人打造家庭影院的新宠。然而,面对市场上琳琅满目的投影仪品牌和型号,如何做出明智的选择呢?上海沪尚茗居为您精心整理了一份投影选择4步曲,助您轻松选购心仪的家庭投影仪。…

[NewStarCTF 2023 公开赛道]逃1

代码审计. 这段代码分为三部分:1.war函数,2.GetFlag类,3.GetFlag类对象的定义,waf过滤以及反序列化 . 很经典的的一道题,键值对逃逸,改变cmd的value,去获取flag. 而war就是我们的突破点&#xf…

基于微信小程序的电商平台+LW示例参考

1.项目介绍 系统角色:管理员、普通用户功能模块:管理员(用户管理、商品分类、商品管理、订单管理、系统管理等),普通用户(个人中心、收藏、我的订单、查看商品等)技术选型:SpringBo…

腾讯混元宣布大语言模型和3D模型正式开源

腾讯混元大模型正在加快开源步伐。 11月5日,腾讯混元宣布最新的MoE模型“混元Large“以及混元3D生成大模型“ Hunyuan3D-1.0”正式开源,支持企业及开发者精调、部署等不同场景的使用需求,可在HuggingFace、Github等技术社区直接下载&#xff…

力扣二叉树题解含思路(C++实现)

1.求二叉树的最近公共祖先: 原题链接:. - 力扣(LeetCode) 假设这题的p,q分别为7和8,而它们的最近公共祖先肯定是为3。 这题我们大致的思路为保存p,q的绝对路径,接着通过存储的绝对路…

K8S资源介绍之configmap

1 configmap介绍 是什么:是K8S内置的一种存储卷,数据存储在etcd数据库中 应用场景:主要是存储应用的配置,实现配置与应分离,可以实现类似配置配置中心的功能 由于镜像是只读的特性,如果想要修改需要重新…

数据结构与算法学习——背包问题总结

主要学习01背包和完全背包。 01 背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 装满问题 二维: 一维: 组…

算法分析中的渐进符号

在算法分析中,渐进符号用于描述算法在输入规模趋于无穷大时的运行时间或空间增长速率。主要的渐进符号包括 O O O、 Ω \Omega Ω、 Θ \Theta Θ、 o o o 和 ω \omega ω。这些符号各自描述了不同的增长界限,本文给出详细的定义和区别。 渐进符号 1. 大 O O O 符号(B…

计算机毕业设计Python+大模型农产品价格预测 ARIMA自回归模型 农产品可视化 农产品爬虫 机器学习 深度学习 大数据毕业设计 Django Flask

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

sql专题 之 三大范式

文章目录 背景范式介绍第一范式:属性不可再分第二范式第三范式注意事项 为什么不遵循后续的范式数据库范式在实际应用中会遇到哪些挑战? 背景 数据库的范式(Normal Form)是一组规则,用于设计数据库表结构以 减少数据冗…

Linux下进程链接结构,命令行参数,环境变量

bash 是一种 shell。在 Linux 系统中,当我们在终端输入命令时,通常是在一个 shell 环境下进行的。如果这个 shell 是 bash,那么所有命令行执行的命令都是 bash 的子进程。 1.Linux下进程链接结构 进程链接补充知识: 所有进程都…