【Linux】shell编程—awk编辑器

news2024/12/23 14:16:27

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

文章目录

  • 一、awk编辑器
    • 1.工作流程
    • 3.常用选项
  • 二、awk的基础用法
    • 1.输出文件中的某一列
    • 2.根据特定条件筛选数据
    • 3.按照分隔符进行切割
    • 4.在匹配到特定字符串时执行操作
    • 5.BEGIN打印模式
    • 6.awk的分隔符用法
  • 三、示例演示


一、awk编辑器

AWK是一种优良的文本处理工具。它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言的最大功能取决于一个人所拥有的知识
可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性

1.工作流程

逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。

sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个“字段”然后再进行处理。awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。

在使用awk命令的过程中,可以使用逻辑操作符“&&”表示“与”、“||”表示“或”、“!”表示“非”;还可以进行简单的数学运算,如+、-、*、/、%、^分别表示加、减、乘、除、取余和乘方。

3.常用选项

命令格式:

awk 选项 '模式或条件 {操作}' 文件 1 文件 2 …
awk -f 脚本文件 文件 1 文件 2 …

awk常见的内建变量(可直接用)如下所示:

选项说明
FS:列分割符。指定每行文本的字段分隔符,默认为空格或制表位。与"-F"作用相同
NF:当前处理的行的字段个数。
NR:当前处理的行的行号(序数)。
$0:当前处理的行的整行内容。
$n:当前处理行的第n个字段(第n列)。
FILENAME:被处理的文件名。
RS:行分隔符。awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录,而awk一次仅读入一条记录,以进行处理。预设值是’\n’

二、awk的基础用法

1.输出文件中的某一列

awk '{print $n}' 文件

在这里插入图片描述

2.根据特定条件筛选数据

awk '条件 {print}' 文件

在这里插入图片描述

3.按照分隔符进行切割

在这里插入图片描述

4.在匹配到特定字符串时执行操作

awk '/匹配条件/ {print}' 文件

在这里插入图片描述

5.BEGIN打印模式

awk 'BEGIN{...};{...};END{...}' 文件

在这里插入图片描述

6.awk的分隔符用法

在这里插入图片描述

三、示例演示

示例一:
获取本机上一次开机时间

date -d "$(awk -F "." '{print $1}' /proc/uptime) second ago" +"%F %H:%M:%S"

在这里插入图片描述

示例二:
检测本机cpu 15分钟内的平均负载

uptime | awk '{print $NF}'

在这里插入图片描述

示例三:
获取本机IP地址

ifconfig ens33|awk '/inet /{print $2}'

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能Python-pythonwxpy

Python的wxpy模块:一款强大的微信机器人框架 在当今数字时代,微信已经成为了大家日常生活中不可缺少的应用。wxpy是一款使用Python语言的微信机器人框架,可以帮助用户实现诸如自动回复、消息提醒、定时发送消息等自动化操作。它的易用性、强…

(5)---STM32 的时钟系统

目录 1.时钟基本概念 时钟源常见振荡器 振荡电路 晶体振荡器 RC振荡器 2.G030时钟源 3.时钟树 4.STM32CubeMX时钟树配置 1.时钟基本概念 1) 时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作, 外设部件…

基于redis客户端缓存机制实现本地缓存

文章目录 前言一、本地缓存和分布式缓存二、redis客户端缓存机制1.客户端缓存实现原理普通模式广播模式重定向模式redirect 2.优势和误区3.客户端缓存机制请求流程 三、项目实战1.引入依赖2.redis连接属性配置3.开启客户端缓存4.使用本地缓存5.测试 总结 前言 采用缓存一直是我…

VMware ESXi 6.0 U3 Final - ESXi 6 系列最终版下载

VMware ESXi 6.0 U3 Final - ESXi 6 系列最终版下载 VMware ESXi 6 Standard 请访问原文链接:https://sysin.org/blog/vmware-esxi-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org VersionRelease NameRelease …

RLHF中的PPO算法原理及其实现

RLHF中的PPO算法原理及其实现 ChatGPT是基于InstructGPT实现的多轮对话生成式大模型。ChatGPT主要涉及到的技术包括: 指令微调(Instruction-tuning);因果推断(Causal Language Modeling);人类…

从零开始Vue3+Element Plus后台管理系统(十五)——多语言国际化vue I18n

i18n国际化的内容比较多,写文章的时间也用得比较长,从上周五开始到本周一,断断续续完成了。 虽然实际工作中很多项目都不需要国际化,但是了解国际化的用法还是很有必要的。 i18n Vue I18n 是 Vue.js 的国际化插件。它可以轻松地…

PFC-FLAC3D Coupling Examples

目录 PFC-FLAC3D Coupling Examples Punch Indentation of a Bonded Material Sleeved Triaxial Test of a Bonded Material 命令流 结果 PFC-FLAC3D Coupling Examples Punch Indentation of a Bonded Material 这个例子展示了一个粘合颗粒模型(BPM&#xff0…

项目经历该如何写?

大家好,我是帅地。 这不春招来了吗,帮训练营的帅友们修改了很多简,其中问题最多的就是项目经历 专业技能这块了,特别是项目经历这块,很多人写了一大堆描述功能描述,但是自己具体干了什么却没怎么写&#…

研发工程师玩转Kubernetes——使用Deployment进行多副本维护

多副本维护是指,对一组在任何时候都处于运行状态的 Pod 副本的稳定集合进行维护。说的直白点,就是保证某种的Pod数量会被自动维持——增加了该类Pod会自动删除多余的,减少了该类Pod会自动新增以弥补,以保证Pod数量不变。 Kubernet…

day37_Tomcat_Maven

今日内容 一、Maven 二、Tomcat 一、Maven 1.1 引言 项目管理问题 项目中jar包资源越来越多,jar包的管理越来越沉重。 繁琐 要为每个项目手动导入所需的jar,需要搜集全部jar 复杂 项目中的jar如果需要版本升级,就需要再重新搜集jar 冗余 相…

基于Spring-动态调整线程池阻塞队列长度

最近在做一个动态线程池的组件,遇到了关于阻塞队列长度刷新的问题,所以记录下来,很有意思 我们都知道常用线程池分为二类,Spring-ThreadPoolTaskExecutor和JDK-ThreadPoolExecutor的,当然了Spring也是基于JDK做一步封装&#xff0…

​数据库原理及应用上机(实验四 SQL连接查询)

✨作者:命运之光 ✨专栏:数据库原理及应用上机实验 目录 ✨一、实验目的和要求 ✨二、实验内容及步骤 ✨三.实验结果 ✨四、实验总结 🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不…

Zerto 10.0 发布 - 勒索软件防护、灾难恢复和多云移动性的统一解决方案

Zerto 10.0 发布 - 勒索软件防护、灾难恢复和多云移动性的统一解决方案 请访问原文链接:https://sysin.org/blog/zerto-10/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 携手 ZERTO 提升勒索软件保护与灾难恢复水…

Python异常处理

1. 异常概述 在程序运行过程中,经常会遇到各种错误,这些错误称为“异常”。这些异常有的是由于开发者一时疏忽将关键字敲错导致的,这类错误多数产生的是SyntaxError:invalid syntax(无效的语法),这将直接导…

JVM笔记

Java中对象一定分配在堆空间上吗?判断一个对象是否还活着GCgc频繁 Java中对象一定分配在堆空间上吗? 逃逸分析:分析对象动态作用域,当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为调用参数传…

Redis6.2.5安装布隆过滤器BloomFilter

最近学习需要用到布隆过滤器,所以去RedisLabsModules下载RedisBloom插件,简单介绍一下安装的过程,首先需要先安装好Redis,建议使用Redis6以上版本,Redis安装教程查看https://smilenicky.blog.csdn.net/article/details…

什么是客户自助服务门户及其搭建方法

随着信息技术的快速发展,越来越多的企业开始转向以客户为中心的服务模式,而客户自助服务门户(Customer Self-Service Portal)则成为了重要的服务方式。它可以让客户在不需要人工干预的情况下,自行解决问题,…

chatgpt赋能Python-python_ai建模

用Python构建AI模型:一步步解析 随着人工智能技术的发展和普及,越来越多的企业开始寻找高效可靠的AI建模技术来提高业务水平和竞争力。Python作为一种强大的编程语言和开发工具,在AI建模领域也扮演着重要的角色。本文将介绍Python AI建模的基…

chatgpt赋能Python-python_ai下载

Python AI 下载:实现自动化数据处理的利器 介绍 Python作为一种脚本语言,凭借其简洁灵活的语法、强大的库支持和生态系统,成为了今天最流行的编程语言之一。在人工智能领域,Python也是最常用的语言之一,因为它的开发…

18-04 数据库分布式架构

分布式ID UUID 优点: 使用简单无需引入额外组件 缺点 无序,无法实现范围查询插入操作比自增ID性能差不少(大概四倍)建议用自增ID(表的主键) UUID(唯一标识) Redis Incr指令优点…