【Linux】shell编程—awk编辑器

news/2025/3/26 13:29:48/

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

文章目录

  • 一、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.ppmy.cn/news/86483.html

相关文章

适合ToB企业的网络营销方法和渠道

ToB服务往往项目复杂,交付周期长,其客户采购也需要复杂的审批流程,一些在ToC领域非常好用的推广方法搬过来却收效甚微。ToB(或称2B)企业的网络营销一直是营销难点,小马识途营销顾问服务过众多2B企业&#x…

SpringBoot --- 运维篇

一、打包与运行 1.1、程序打包与运行(Windows版) 所谓打包指将程序转换成一个可执行的文件,所谓运行指不依赖开发环境执行打包产生的文件。 SpringBoot程序是基于Maven创建的,在Maven中提供有打包的指令,叫做packag…

macOS上安装和使用nvm

macOS 上安装和使用 nvm nvm(Node Version Manager)是一款用于管理 Node.js 版本的工具,可以让您在同一台计算机上轻松地切换和管理多个 Node.js 版本。本文将向您介绍如何在 macOS 上安装和使用 nvm。 一、安装 nvm 打开终端应用程序。 使…

车载以太网 - SomeIP - 协议用例 - on-wire

目录 Specification of the SOME/IP on-wire format 1.1、验证Response报文中的源IP地址为Request报文中的目标IP地址

第七章 文件读写

内容框图 7.1 文件读写介绍 文件打开和关闭 用word编写一份简历,应该有哪些流程? 打开word软件,新建一个word文件写入个人简历信息保存文件关闭word软件 同样,编程中操作文件的整体过程类似。 打开文件,或者新建立一个…

【LeetCode】168. Excel表列名称

168. Excel表列名称(简单) 思路 显然,这是一道从 1 开始的的 26 进制转换题。 对于一般性的进制转换题目,只需要不断地对 columnNumber 进行 % 运算取得最后一位,然后对 columnNumber 进行 / 算,将已经取得…

Qt经典面试题:Qt开启线程的几种方式

方法一:从QThread类派生 ①创建一个类从QThread类派生 ②在子线程类中重写 run 函数, 将处理操作写入该函数中 ③在主线程中创建子线程对象, 启动子线程,调用start()函数 这种方法涉及到创建一个从QThread类派生的子类,并在该子类中重写run()函数。处理操…

如何在Linux中更改SSH端口?

SSH(Secure Shell)是一种安全的远程登录协议,它允许您通过网络远程连接到Linux系统并进行管理操作。默认情况下,SSH使用22端口进行通信。然而,为了增强系统的安全性,有时候我们需要更改SSH端口,…