当前位置: 首页 > article >正文

正则表达式三剑客之——awk命令

目录

一.什么是awk

二.awk的语法格式

1.选项 

2. 模式(Pattern)

3. 操作(Action)

4. 输入文件(file)

5.总结 

三.awk的工作原理 

1. 逐行扫描输入

 2. 匹配模式

1.正则表达式:

2.逻辑表达式:

3.特殊模式:

3. 执行操作

打印:

计算:

修改字段:

4. 内置变量

5. 工作流程

四 练习

4.1 awk命令基础部分 

4.2awk命令高级部分 


一.什么是awk

awk 是一种模式扫描和处理语言,其核心思想是:

  1. 逐行扫描输入awk 会逐行读取输入文件或数据流。
  2. 匹配模式:通过定义模式(可以是正则表达式或逻辑条件)来匹配特定的行。
  3. 执行操作:对匹配的行执行指定的操作(如打印、计算、修改等)。

二.awk的语法格式

awk 命令主要由 模式(Pattern) 和 操作(Action) 组成,其基本语法如下:

awk [选项] 'pattern { action }' file

1.选项 

  1. -F 定义字段分隔符,默认分隔符是空格或制表符

  2. -v 定义变量并赋值

  3. -f 指定文件里的命令来处理文件

2. 模式(Pattern)

模式用于匹配输入行,决定是否执行操作。模式可以是以下类型:

       正则表达式

  • 使用 /pattern/ 匹配包含特定模式的行。
  • 示例:
    awk '/error/ { print }' file.txt  # 打印包含 "error" 的行

    逻辑表达式

  • 使用比较运算符(如 ==>< 等)匹配满足条件的行。
  • 示例:
    awk '$1 > 10 { print }' file.txt  # 打印第一个字段大于 10 的行

    特殊模式

  • BEGIN:在处理输入之前执行的操作。
  • END:在处理完所有输入后执行的操作。
  • 示例:
    awk 'BEGIN { print "Start" } { print } END { print "End" }' file.txt

    空模式

  • 如果模式为空,则默认匹配所有行。
  • 示例:
    awk '{ print }' file.txt  # 打印所有行

    3. 操作(Action)

    操作是当模式匹配时执行的代码块,用 {} 包围。操作可以是以下内容:

      打印

  • 使用 print 或 printf 输出内容。
  • 示例:
    awk '{ print $1 }' file.txt  # 打印每行的第一个字段

    计算

  • 对字段或变量进行数学运算。
  • 示例:
    awk '{ sum += $1 } END { print sum }' file.txt  # 计算第一列的总和

    修改字段

  • 直接修改字段的值。
  • 示例
    awk '{ $1 = "new_value"; print }' file.txt  # 将第一列替换为 "new_value"

    4. 输入文件(file)

    awk 命令可以处理一个或多个文件。如果未指定文件,则从标准输入读取数据。

5.总结 

       awk 命令的完整结构:

awk [选项] 'BEGIN { initialization } pattern { action } END { finalization }' file

 BEGIN 块:在处理输入之前执行,通常用于初始化变量或打印标题。

 END 块:在处理完所有输入后执行,通常用于输出统计结果或总结。

   再次强调awk 命令的结构由 模式 和 操作 组成,支持 BEGIN 和 END 块进行初始化和收尾工作。

三.awk的工作原理 

1. 逐行扫描输入

awk 会逐行读取输入文件或数据流(如果没有指定文件,则从标准输入读取)。对于每一行,awk 会执行以下步骤:

  1. 将当前行存储在内部变量 $0 中。
  2. 根据字段分隔符(默认是空格或制表符)将行分割为多个字段,分别存储在 $1$2$3 等变量中。
  3. 更新内置变量(如 NR 表示当前行号,NF 表示当前行的字段数)。

 2. 匹配模式

awk 支持多种模式匹配方式:

   1.正则表达式

  • 使用 /pattern/ 来匹配包含特定模式的行。

  • 示例

    awk '/error/ { print }' file.txt  # 打印包含 "error" 的行
    

     2.逻辑表达式

  • 使用比较运算符(如 ==>< 等)来匹配满足条件的行。
  • 示例:
    awk '$1 > 10 { print }' file.txt  # 打印第一个字段大于 10 的行

    3.特殊模式

  • BEGIN:在处理输入之前执行的操作。
  • END:在处理完所有输入后执行的操作。
  • 示例
    awk 'BEGIN { print "Start" } { print } END { print "End" }' file.txt

    3. 执行操作

 当模式匹配时,awk 会执行相应的操作。操作可以是:

      打印

  • 使用 print 或 printf 输出内容。
  • 示例
    awk '{ print $1 }' file.txt  # 打印每行的第一个字段

    计算

  • 对字段或变量进行数学运算。
  • 示例:
    awk '{ sum += $1 } END { print sum }' file.txt  # 计算第一列的总和

    修改字段

  • 直接修改字段的值。
  • 示例:
    awk '{ $1 = "new_value"; print }' file.txt  # 将第一列替换为 "new_value"

    4. 内置变量

 awk 提供了许多内置变量,用于控制和处理数据:

变量描述
NR当前处理的行号(从 1 开始)。
NF当前行的字段数。
FS字段分隔符(默认是空格或制表符)。
OFS输出字段分隔符(默认是空格)。
RS记录分隔符(默认是换行符)。
ORS输出记录分隔符(默认是换行符)。
FILENAME当前处理的文件名
$0当前处理的行的整行内容
$n当前处理行的第n个字段(第n列)

      5. 工作流程

综上:awk 的工作流程可以总结为以下步骤:

  1. 初始化
    • 执行 BEGIN 块中的操作(如果有)。
  2. 逐行处理
    • 读取每一行,更新内置变量(如 NRNF 等)。
    • 检查是否匹配模式,如果匹配则执行操作。
  3. 结束处理
    • 执行 END 块中的操作(如果有)。

四 练习

4.1 awk命令基础部分 

[root@localhost ~]# cat /etc/passwd | head -10 > zz
#以这条命令为前提执行如下命令1.逐条打印zz文件的内容
awk '{print}' zz2.逐条打印zz文件的每一行的第一个字段(默认以空格或制表符分隔)。
awk '{print $1}' zz3.以 : 作为字段分隔符,打印 zz 文件中每一行的第 5 个字段。
awk -F:'{print $1}' /etc/passwd4.以 x 作为字段分隔符,打印 /etc/passwd 文件中每一行的第一个字段。
awk -Fx '{print $1}' /etc/passwd5.打印 zz 文件中每一行的第一个和第二个字段(默认以空格或制表符分隔),并将它们连接在一起。
awk '{print $1 $2}' zz6.打印 zz 文件中每一行的第一个和第二个字段(默认以空格或制表符分隔),并在它们之间插入一个空格。
awk '{print $1" "$2}' zz
或
awk '{print $1,$2}' zz7.打印 zz 文件中每一行的第一个和第二个字段(默认以空格或制表符分隔),用制表符作为分隔符输出。
awk -F: '{print $1"\t"$2}' zz8.打印包含root的整行内容
awk -F: '/root/{print $0}' zz 9.打印包含root的行的第一列
awk -F: '/root/{print $1}' zz10.以:或/作为字段分隔符,计算并输出zz文件中每一行的字段数量
awk -F[:/] '{print NF}' zz11.以:或/作为字段分隔符,逐行处理zz文件,并输出当前行的行号 
awk -F[:/] '{print NR}' zz12.打印 /etc/passwd 文件的第二行。
awk 'NR==2' /etc/passwd
或awk 'NR==2{print}' /etc/passwd13.以:为分隔符,打印/etc/passwd文件第二行的第一列。
awk -F: 'NR==2{print $1}' /etc/passwd14. 打印最后一列
awk -F: '{print $NF}' /etc/passwd15.在文件处理结束后,打印文件的总行数。
awk 'END{print NR}' /etc/passwd16.在文件处理结束后,打印文件的最后一行。
awk 'END{print $0}' /etc/passwd17.以:为分隔符,打印/etc/passwd文件的每一行有几列。
awk -F: '{print "第"NR"行有"NF"列"}' /etc/passwd

1.查看本机IP地址
ifconfig ens33 | awk '/netmask/{print "本机的ip地址是"$2}'2.根分区的可用量
df -h | awk 'NR==2{print $4}'3.BEGIN块的一些注意事项:
(1)BEGIN块在处理文件之前执行,因此不需要指定文件名
运行awk 'BEGIN{x=10;print x+1}' 会直接输出结果11
如果没有BEGIN块:运行awk '{x=10; print x+1}' filename ;这条命令会逐行处理filename文件,并对每一行执行 {x=10; print x+1}。(2)不指定初始值,初始值就为0,如果是字符串,则默认为空awk 'BEGIN{print x+1}'      输出为1
小数也可以运算  awk 'BEGIN{print 2.5+3.5}'  输出为6
^和**都是幂运算 awk 'BEGIN{print 2^3}' awk 'BEGIN{print 2**3}' 输出都是84. awk -F: '/root/' /etc/passwd
在awk中,如果省略 print,默认行为是打印整行(即 print $0)。5.用~表示包含,!~表示不包含 
注意~和!~是模糊匹配(用于在不完全精确匹配的情况下,找到与目标最相似的结果)例1:awk -F: '$1~/ro/' /etc/passwd  
#模糊匹配,只要有ro就匹配上
例2:awk -F: '$7!~/nologin$/{print $1,$7}' /etc/passwd
#从/etc/passwd文件中提取用户的登录名($1)和登录Shell($7),但只选择那些登录Shell不以nologin结尾的行。

内置变量的用法
1.awk 'BEGIN{FS=":";OFS="---"}{print $1,$2}' pass.txt
#OFS定义了输出时以什么分隔,$1$2中间要用逗号分隔,因为逗号默认被映射为OFS变量,而这个变量默认是空格
输出结果为:
root---x
bin---x
daemon---x
adm---x
lp---x2.awk 'BEGIN{RS=":"}{print $0}' /etc/passwd
#RS:指定以什么为换行符,这里指定是冒号,你指定的必须是原文里存在的字符3.awk 'BEGIN{ORS=" "}{print $0}' /etc/passwd
#将/etc/passwd文件中的每一行连接起来,并用空格作为分隔符输出。

4.2awk命令高级部分 

awk与if语句结合
例1:简单条件判断
假设有一个文件 data.txt,内容如下:
10
20
30
40
50
要求:如果某行的值大于 30,则打印该行。awk '{if ($1 > 30) print $0}' data.txt
要求:只打印奇数行。                  awk '{if (NR % 2 == 1) print $0}' data.txt例2:多条件判断
假设有一个文件 users.txt,内容如下:
Alice 25
Bob 30
Charlie 15
David 40
要求:如果年龄大于 20 且小于 40,则打印用户名。
awk '{if ($2 > 20 && $2 < 40) print $1}' users.txt要求:根据分数打印等级:
大于等于 90:A
大于等于 80:B
大于等于 60:C
其他:Dawk '{if ($2 >= 90) {print $1, "A"} else if ($2 >= 80) {print $1, "B"} else if ($2 >= 60) {print $1, "C"} else {print $1, "D"}
}' scores.txt例3:结合正则表达式
假设有一个文件 emails.txt,内容如下:
alice@example.com
bob@gmail.com
charlie@example.org
david@yahoo.com
要求:如果邮箱地址以 @example.com 结尾,则打印该邮箱。
awk '{if ($0 ~ /@example\.com$/) print $0}' emails.txtawk还支持for循环、while循环、函数、数组等

awk高级用法
1.统计 /etc/passwd 文件中以 /bin/bash 结尾的行数,并输出这些行及其编号,最后输出总行数。
awk 'BEGIN{x=0};/\/bin\/bash$/ {x++;print x,$0};END {print x}' /etc/passwd2.输出/etc/passwd文件第3个字段的值不小于200的行
awk -F ":" '! ($3<200){print} ' /etc/passwd3.从/etc/passwd文件中提取每一行的第3个字段(用户 ID)和第4个字段(组 ID),比较它们的值,输出较大的那个值。
awk -F ":" ' {max=($3>=$4) ?$3:$4; {print max}} ' /etc/passwd注意:($3>=$4) ?$3:$4:这是一个三元运算符,用于比较 $3 和 $4 的值:
如果 $3 大于或等于 $4,则返回 $3。
否则,返回 $4。4.逐行读取 /etc/passwd 文件,并在每一行的前面加上行号(NR),然后输出整行内容。
awk -F ":" '{print NR,$0}' /etc/passwd5.输出以冒号分隔且第7个字段中包含/bash的行的第1个字段
awk -F ":" '$7~"bash"{print $1,47}' /etc/passwd6.从 /etc/passwd 文件中提取第1个字段中包含root且有7个字段的行,并输出该行的第1个字段第2个字段和最后一个字段。
awk -F":"'($1~"root") && (NF==7) {print $1,$2,$NF } ' /etc/passwd7.输出/etc/passwd 文件中第7个字段既不为/bin/bash,也不为/sbin/nologin的所有行
awk -F ":”'($7!="/bin/bash")&&($7!="/sbin/nologin"){print} ' /etc/passwd8.查看当前内存使用百分比
free -m |awk '/Mem:/ {print int($3/($3+$4)*100)"%"}'9.统计使用bash 的用户个数
awk -F: '/bash$/ {print}'passwd | wc -l
或
awk -F: '/bash$/{print | "wc -l"}' /etc/passwd10.查看当前CPU空闲率
top -b -n 1 | grep Cpu | awk -F ',' '{print $4}'| awk '{print $1}' 
(-b -n 1表示只需要1次的输出结果)11.从 /var/log/secure 日志文件中提取所有失败的 SSH 登录尝试,并统计每个 IP 地址的失败次数。
awk 'BEGIN {ip[$11]=0}; /Failed password/ {ip[$11]++}; END {for(i in ip) {print i" , "ip[i]}}' /var/log/secure

面试题:

找到10:00 到 11:00 之间的日志

awk '$3 >= "10:00:00" && $3 <= "11:00:00"' /var/log/messages

相关文章:

正则表达式三剑客之——awk命令

目录 一.什么是awk 二.awk的语法格式 1.选项 2. 模式&#xff08;Pattern&#xff09; 3. 操作&#xff08;Action&#xff09; 4. 输入文件&#xff08;file&#xff09; 5.总结 三.awk的工作原理 1. 逐行扫描输入 2. 匹配模式 1.正则表达式&#xff1a; 2.逻辑…...

BeeWorks Meet:私有化部署视频会议的高效选择

在数字化时代&#xff0c;视频会议已成为企业沟通协作的重要工具。然而&#xff0c;对于金融、政务、医疗等对数据安全和隐私保护要求极高的行业来说&#xff0c;传统的公有云视频会议解决方案往往难以满足其严格的安全标准。此时&#xff0c;BeeWorks Meet 私有化部署视频会议…...

[Mybatis-plus]

简介 MyBatis-Plus &#xff08;简称 MP&#xff09;是一个 MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变。Mybatis-plus官网地址 注意&#xff0c;在引入了mybatis-plus之后&#xff0c;不要再额外引入mybatis和mybatis-spring&#xff0c;避免因为版本…...

IPv6 技术细节 | 源 IP 地址选择 / Anycast / 地址自动配置 / 地址聚类分配

注&#xff1a;本文为 “IPv6 技术细节” 相关文章合集。 部分文章中提到的其他文章&#xff0c;一并引入。 略作重排&#xff0c;未整理去重。 如有内容异常&#xff0c;请看原文。 闲谈 IPv6 - 典型特征的一些技术细节 iteye_21199 于 2012-11-10 20:54:00 发布 0. 巨大的…...

【高频考点精讲】ES6 String的新增方法,处理字符串更方便了

ES6 String的新增方法:处理字符串从未如此优雅 【初级】前端开发工程师面试100题(一) 【初级】前端开发工程师面试100题(二) 【初级】前端开发工程师的面试100题(速记版) 作为天天和字符串打交道的码农,谁还没被indexOf和substring折磨过?ES6给String对象新增的几个方…...

【工具】使用 MCP Inspector 调试服务的完全指南

Model Context Protocol (MCP) Inspector 是一个交互式开发工具&#xff0c;专为测试和调试 MCP 服务器而设计。本文将详细介绍如何使用 Inspector 工具有效地调试和测试 MCP 服务。 1. MCP Inspector 简介 MCP Inspector 提供了直观的界面&#xff0c;让开发者能够&#xff…...

【音视频】AVIO输入模式

内存IO模式 AVIOContext *avio_alloc_context( unsigned char *buffer, int buffer_size, int write_flag, void *opaque, int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), int64_t (*seek)(…...

AI与思维模型【76】——SWOT思维模型

一、定义 SWOT思维模型是一种用于分析事物内部和外部因素的战略规划工具。其中&#xff0c;S代表优势&#xff08;Strengths&#xff09;&#xff0c;是指事物自身所具备的独特能力、资源或特点&#xff0c;这些因素有助于其在竞争中取得优势&#xff1b;W代表劣势&#xff08…...

大模型提示词如何编写

一、提示词的核心三要素 明确目标&#xff08;What&#xff09; 告诉 AI「你要它做什么」&#xff0c;越具体越好。 ❌ 模糊&#xff1a;写一篇文章 ✅ 清晰&#xff1a;写一篇 800 字的高考作文&#xff0c;主题 “坚持与创新”&#xff0c;结构分引言、三个论点&#xff08;…...

python如何取消word中的缩进

在python-docx中&#xff0c;取消缩进可以通过将相应的缩进属性设置为None或0来实现。以下是取消不同类型缩进的方法&#xff1a; 取消左缩进 from docx import Documentdoc Document(existing_document.docx)for paragraph in doc.paragraphs:# 取消左缩进paragraph.paragr…...

DDL小练习

1.创建一张t_user表 要求属性有id(INT),name(VARCHAR),sex(VARCHAR),birthday(DATE) 其中id和name不能为空&#xff0c;添加数据并测试。 创建数据库 create database spt2503; 创建数据库中的t_user表 create table t_user (id int not null, name varchar(20) not…...

Uniapp:scroll-view(区域滑动视图)

目录 一、基本概述二、属性说明三、基本使用3.1 纵向滚动3.2 横向滚动一、基本概述 scroll-view,可滚动视图区域。用于区域滚动。 二、属性说明 属性名类型默认值说明平台差异说明scroll-xBooleanfalse允许横向滚动scroll-yBooleanfalse允许纵向滚动三、基本使用 3.1 纵向滚…...

【前端】【面试】在前端开发中,如何实现图片的渐进式加载,以及这样做的好处是什么?

题目&#xff1a;在前端开发中&#xff0c;如何实现图片的渐进式加载&#xff0c;以及这样做的好处是什么&#xff1f; 在浏览器端实现图片的“渐进式加载”&#xff08;Progressive Image Loading&#xff09;常用的三种方式 方法思路典型实现要点适用场景优缺点简述1. 使…...

单精度浮点运算/定点运算下 MATLAB (VS) VIVADO

VIVADO中单精度浮点数IP核计算结果与MATLAB单精度浮点数计算结果的对比 MATLAB定点运算仿真&#xff0c;对比VIVADO计算的结果 目录 前言 一、VIVADO与MATLAB单精度浮点数运算结果对比 二、MATLAB定点运算仿真 总结 前言 本文介绍了怎么在MATLAB中使用单精度浮点数进行运算…...

基于大模型对先天性巨结肠全流程预测及医疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、大模型在先天性巨结肠预测中的理论基础 2.1 大模型概述 2.2 大模型预测先天性巨结肠的可行性分析 三、术前预测与准备方案 3.1 大模型对术前病情的预测 3.1.1 疾病确诊预测 3.1.2 病情严重程度评估 3.2 …...

【AI插件开发】Notepad++ AI插件开发1.0发布和使用说明

一、产品简介 AiCoder是一款为Notepad设计的轻量级AI辅助插件&#xff0c;提供以下核心功能&#xff1a; 嵌入式提问&#xff1a;对选中的文本内容进行AI分析&#xff0c;通过侧边栏聊天界面与AI交互&#xff0c;实现多轮对话、问题解答或代码生成。对话式提问&#xff1a;独…...

【MySQL数据库入门到精通-07 函数-字符串函数、数值函数、日期函数和流程函数】

文章目录 一、字符串函数1. MySQL中的函数主要分为以下四类&#xff1a; 字符串函数、数值函数、日期函数、流程函数。下面是字符串函数常见的函数&#xff0c;见下表。2.具体代码实现3.结果 二、数值函数1.知识点2.具体代码实现3.结果 三、日期函数1.知识点2.具体代码实现3.结…...

Python图像处理——基于Retinex算法的低光照图像增强系统

1.项目内容 &#xff08;1&#xff09;算法介绍 ①MSRCR (Multi-Scale Retinex with Color Restoration) MSRCR 是多尺度 Retinex 算法&#xff08;MSR&#xff09;的扩展版&#xff0c;引入了色彩恢复机制以进一步提升图像增强质量。MSR 能有效地压缩图像动态范围&#xff…...

如何在JDK17项目中改成1.8

1.调整 Spring Boot 版本 由于 Spring Boot 3.x 最低要求 JDK 17&#xff0c;所以如果要使用 JDK 8&#xff0c;需要把 spring-boot-starter-parent 的版本降低到 2.7.x 系列&#xff0c;这个系列是支持 JDK 8 的。示例如下&#xff1a; <parent><groupId>org.sp…...

【不同名字的yolo的yaml文件名是什么意思】

以下是这些 YOLO 系列配置文件的详细解析&#xff0c;按版本和功能分类说明&#xff1a; 一、YOLOv3 系列 文件名核心特性适用场景yolov3.yaml原始 YOLOv3 结构&#xff0c;3 尺度预测&#xff08;13x13,26x26,52x52&#xff09;通用目标检测yolov3-spp.yaml增加 SPP&#xff…...

Zephyr kernel Build System (CMake)介绍

目录 概述 1. 结构介绍 2 构建和配置阶段 2.1 配置阶段 2.2 Cmake编译 3 Zephy项目目录结构 3.1 文件架构 3.2 文件content 概述 本文主要介绍Zephyr kernel Build System CMake的功能&#xff0c;以及使用该工具构建项目&#xff0c;并详细介绍了每个目录以及目录下文…...

相对论大师-记录型正负性质BFS/图论-链表/数据结构

看到这一题我的第一个思路就是双向bfs 起点是a&#xff0c;终点还是a&#xff0c;但是flag是相反的&#xff08;“越”的方向&#xff09; tip1.可以用字典vis来存储flag 刚开始初始化时vissta,visend一个对应0、1 要求两个队列相…...

研发内控新规下的合规之道:维拉工时助力企业穿越IPO审查雷区

&#x1f4cc; 背景 | 全面注册制下&#xff0c;研发内控成“必修课” 在全面注册制背景下&#xff0c;证监会发布的《监管规则适用指引——发行类第9号&#xff1a;研发人员及研发投入》&#xff08;简称“发行类9号”&#xff09;&#xff0c;对企业的研发费用归集、研发工时…...

Jenkins流水线管理工具

文章目录 前言&#xff1a; DevOps时代的自动化核心 —Jenkins一、Jenkins是什么&#xff1f;二、Linux安装Jenkinswar包方式安装依赖环境下载 Jenkins WAR 包启动 Jenkins 服务启动日志验证配置插件镜像源 docker镜像方式安装依赖环境拉取 Jenkins 镜像运行 Jenkins 容器获取初…...

嵌入式开发:基础知识介绍

一、嵌入式系统 1、介绍 以提高对象体系智能性、控制力和人机交互能力为目的&#xff0c;通过相互作用和内在指标评价的&#xff0c;嵌入到对象体系中的专用计算机系统。 2、分类 按其形态的差异&#xff0c;一般可将嵌入式系统分为&#xff1a;芯片级&#xff08;MCU、SoC&am…...

el-table中el-input的autofocus无法自动聚焦的解决方案

需求 有一个表格展示了一些进度信息&#xff0c;进度信息可以修改&#xff0c;需要点击进度信息旁边的编辑按钮时&#xff0c;把进度变为输入框且自动聚焦&#xff0c;当鼠标失去焦点时自动请求更新接口。 注&#xff1a;本例以vue2 element UI为例 分析 这个需求看着挺简单…...

一文了解智慧教育顶刊TLT的研究热点

本文聚焦于IEEE Transactions on Learning Technologies&#xff08;TLT&#xff09;期刊&#xff0c;通过图文结合的方式&#xff0c;梳理了2025年第18卷的研究热点&#xff0c;帮助读者把握教育技术与人工智能交叉领域的研究进展&#xff0c;深入了解智能学习系统、自适应学习…...

统计术语学习

基期、现期 作为对比参照的时期称为基期&#xff0c;而相对于基期的称为现期。 描述具体数值时我们称之为基期量和现期量。 【例 1】2017 年比 2016 年第三产业 GDP 增长 6.8%&#xff0c; &#xff08;2016&#xff09;为基期&#xff0c;&#xff08;2017&#xff09; 为现…...

NEGATIVE LABEL GUIDED OOD DETECTION WITH PRETRAINED VISION-LANGUAGE MODELS

1. 介绍: 这篇论文也是基于CLIP通过后处理的方法实现的OOD的检测,但是设计点在于,之前的方法是使用的ID的类别,这篇工作是通过添加一些在语义上非常不同于ID的类别的外分布类来做的OOD检测。 CLIP做OOD检测的这个系列里面我看的以及记录的第一篇就是MCM的方法,这也是确实是…...

飞机会员日

各航空公司会员日日期 主要航空公司会员日整理如下&#xff08;数据截至2025年3月最新信息&#xff09;&#xff1a;‌ 1 2 ‌中国国际航空&#xff08;国航&#xff09;‌ 每月"同月同日"&#xff08;如1月1日、2月2日类推&#xff09; ‌中国南方航空&#xff08…...