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

linux awk命令和awk语言

linux awk和awk语言

通常大家说的awk几乎都是在linux/unix中使用的awk命令,见下,
https://www.geeksforgeeks.org/awk-command-unixlinux-examples/

作为命令使用的话,存在下内容

Awk 是一个工具,使程序员能够编写小巧但有效的程序,这些程序以定义要在文档的每一行中搜索的文本模式的形式出现,并定义当在某一行中找到匹配项时应采取的操作。Awk 主要用于模式扫描和处理。它会搜索一个或多个文件,查看它们是否包含与指定模式匹配的行,然后执行相关操作。

Awk 是从开发人员的名字缩写而来的——Aho、Weinberger 和 Kernighan

AWK 可以用来做什么?

  1. AWK 操作:
    (a) 逐行扫描文件
    (b) 将每行输入拆分为字段
    © 将输入行/字段与模式进行比较
    (d) 对匹配的行执行操作

  2. 适用范围:
    (a) 转换数据文件
    (b) 生成格式化的报告

  3. 编程结构:
    (a) 格式化输出行
    (b) 算术和字符串操作
    © 条件语句和循环

语法:

awk options ‘selection _criteria {action }’ input-file > output-file
选项:

-f program-file : Reads the AWK program source from the file
program-file, instead of from the
first command line argument.
-F fs : Use fs for the input field separator

示例:

考虑以下文本文件作为以下所有情况的输入文件:

$cat > employee.txt
ajay manager account 45000
sunil clerk account 25000
varun manager sales 50000
amit manager account 47000
tarun peon sales 15000
deepak clerk sales 23000
sunil peon sales 13000
satvik director purchase 80000

  1. Awk 的默认行为:默认情况下,Awk 会打印指定文件中的每一行数据。

$ awk ‘{print}’ employee.txt

ajay manager account 45000
sunil clerk account 25000
varun manager sales 50000
amit manager account 47000
tarun peon sales 15000
deepak clerk sales 23000
sunil peon sales 13000
satvik director purchase 80000

在上述示例中,没有给出模式。因此,操作适用于所有行。print 动作没有参数,默认会打印整行,所以会成功打印文件中的所有行。

  1. 打印匹配给定模式的行。

$ awk ‘/manager/ {print}’ employee.txt
AWK 命令在 Unix/Linux 中的例子 - GeeksforGeeks

ajay manager account 45000
varun manager sales 50000
amit manager account 47000
在上面的例子中,awk 命令打印出所有匹配 ‘manager’ 的行。

  1. 将一行分为字段:对于每条记录即每一行,awk 命令默认使用空白字符分隔记录,并将其存储在 $n 变量中。如果一行有 4 个单词,它将分别存储在 $1、$2、$3 和 $4 中。此外,$0 代表整个行

$ awk ‘{print $1,$4}’ employee.txt

$ awk ‘{print $1,$4}’ employee.txt
AWK 命令在 Unix/Linux 中的例子 - GeeksforGeeks

ajay 45000
sunil 25000
varun 50000
amit 47000
tarun 15000
deepak 23000
sunil 13000
satvik 80000
在上面的例子中,$1 和 $4 分别代表 Name 和 Salary 字段。

Awk 中的内置变量

Awk 的内置变量包括字段变量—$1、$2、$3 等($0 是整个行)—这些变量将一行文本分解为单独的单词或称为字段的片段。

NR: NR 命令会保持当前输入记录的计数。请注意,记录通常是一行。Awk 命令会对文件中的每一记录执行一次模式/动作语句。
NF: NF 命令会统计当前输入记录中的字段数量。
FS: FS 命令包含字段分隔字符,用于划分输入行上的字段。默认值是“空白字符”,即空格和制表符。FS 可以在 BEGIN 中重新分配为另一个字符以更改字段分隔符。
RS: RS 命令存储当前的记录分隔符字符。由于默认情况下,输入行是输入记录,因此默认的记录分隔符字符是换行符。
OFS: OFS 命令存储输出字段分隔符,当 Awk 打印字段时,它会用 OFS 分隔字段。默认情况下,OFS 是一个空格。每当 print 有多个用逗号分隔的参数时,它会在每个参数之间打印 OFS 的值。
ORS: ORS 命令存储输出记录分隔符,当 Awk 打印时,该分隔符会将输出行分隔开。默认情况下,它是换行符。print 会自动在要打印的内容末尾输出 ORS 的内容。
示例:

使用 NR 内置变量(显示行号)

$ awk ‘{print NR,$0}’ employee.txt

1 ajay manager account 45000
2 sunil clerk account 25000
3 varun manager sales 50000
4 amit manager account 47000
5 tarun peon sales 15000
6 deepak clerk sales 23000
7 sunil peon sales 13000
8 satvik director purchase 80000
在上述示例中,使用 NR 的 awk 命令打印了所有行以及行号。

使用内置变量 NF(显示最后一个字段)

$ awk ‘{print $1,$NF}’ employee.txt

ajay 45000
sunil 25000
varun 50000
amit 47000
tarun 15000
deepak 23000
sunil 13000
satvik 80000
在上面的例子中,$1 表示 Name,$NF 表示 Salary。我们可以使用 $NF 获取 Salary,其中 $NF 表示最后一个字段。

另一个内置变量 NR 的用法(显示第 3 到第 6 行)

$ awk ‘NR==3, NR==6 {print NR,$0}’ employee.txt

3 varun manager sales 50000
4 amit manager account 47000
5 tarun peon sales 15000
6 deepak clerk sales 23000

更多的案例

  1. 要打印每行的第一个项以及该行号(NR),两者之间用 “ – “ 分隔,在 geeksforgeeks.txt 中执行以下命令:

$ awk ‘{print NR "- " $1 }’ geeksforgeeks.txt

  1. 要从 geeksforgeeks.txt 中返回第二列/项:

$ awk ‘{print $2}’ geeksforgeeks.txt

  1. 如果存在非空行则打印该行

awk ‘NF == 0 {print NR}’ geeksforgeeks.txt

OR

awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt

  1. 查找文件中最长行的长度:

$ awk ‘{ if (length($0) > max) max = length($0) } END { print max }’ geeksforgeeks.txt

  1. 计算文件中的行数:

$ awk ‘END { print NR }’ geeksforgeeks.txt

  1. 打印包含超过 10 个字符的行:

$ awk ‘length($0) > 10’ geeksforgeeks.txt

  1. 在任何特定列中查找/检查任何字符串:

$ awk ‘{ if($3 == “B6”) print $0;}’ geeksforgeeks.txt

  1. 要打印从 1 到 n(例如 6)的数的平方:

$ awk ‘BEGIN { for(i=1;i<=6;i++) print “square of”, i, “is”,i*i; }’


awk语言
官方材料:
https://www.gnu.org/software/gawk/manual/gawk.html#Qualified-Names

第一部分:
awk 语言
1 awk 入门
1.1 如何运行 awk 程序
1.1.1 一次性一次性 awk 程序
1.1.2 在没有输入文件的情况下运行 awk
1.1.3 运行长程序
1.1.4 可执行的 awk 程序
1.1.5 awk 程序中的注释
1.1.6 Shell 引用问题
1.1.6.1 在 MS-Windows 批处理文件中引用
1.2 示例的数据文件
1.3 一些简单的例子
1.4 具有两条规则的示例
1.5 更复杂的例子
1.6 awk 语句 vs Lines
1.7 awk 的其他特点
1.8 何时使用 awk
1.9 总结
2 喋喋不休
2.1 调用 awk
2.2 命令行选项
2.3 其他命令行参数
2.4 命名标准输入
2.5 gawk 使用的环境变量
2.5.1 AWKPATH 环境变量
2.5.2 AWKLIBPATH 环境变量
2.5.3 其他环境变量
2.6 gawk 的退出状态
2.7 将其他文件包含在程序中
2.8 将 Dynamic Extensions 加载到程序中
2.9 过时的选项和/或功能
2.10 未记录的选项和功能
2.11 总结
3 正则表达式
3.1 如何使用正则表达式
3.2 转义序列
3.3 正则表达式运算符
3.3.1 awk 中的 Regexp 运算符
3.3.2 关于区间表达式的一些说明
3.4 使用 Bracket 表达式
3.5 有多少文本匹配?
3.6 使用动态正则表达式
3.7 特定于 gawk 的正则表达式运算符
3.8 匹配时区分大小写
3.9 总结
4 读取输入文件
4.1 如何将 Input 拆分为 Records
4.1.1 使用标准 awk 进行记录分割
4.1.2 使用 gawk 进行记录分割
4.2 检查字段
4.3 非常量字段编号
4.4 更改字段的内容
4.5 指定字段的分隔方式
4.5.1 空格通常分隔字段
4.5.2 使用正则表达式分隔字段
4.5.3 将每个角色设为单独的字段
4.5.4 使用逗号分隔值文件
4.5.5 从命令行设置 FS
4.5.6 将整行设置为单个字段
4.5.7 字段拆分摘要
4.6 读取固定宽度数据
4.6.1 处理固定宽度数据
4.6.2 跳过中间字段
4.6.3 捕获可选的尾随数据
4.6.4 具有固定宽度数据的字段值
4.7 按内容定义字段
4.7.1 有关 CSV 文件的更多信息
4.7.2 FS 与 FPAT:细微差别
4.8 检查 gawk 如何拆分记录
4.9 多行记录
4.10 使用 getline 进行显式输入
4.10.1 使用不带参数的 getline
4.10.2 在变量中使用 getline
4.10.3 从文件中使用 getline
4.10.4 在文件中的 Variable 中使用 getline
4.10.5 使用 Pipe 中的 getline
4.10.6 从 Pipe 将 getline 用于变量
4.10.7 从 Coprocess 使用 getline
4.10.8 在 Coprocess 的 Variable 中使用 getline
4.10.9 关于 getline 需要记住的要点
4.10.10 getline 变体总结
4.11 读取带有超时的输入
4.12 在某些 Importing 错误后重试读取
4.13 命令行上的目录
4.14 总结
4.15 练习
5 打印输出
5.1 print 语句
5.2 print 语句示例
5.3 输出分隔符
5.4 使用 print 控制数字输出
5.5 使用 printf 语句进行更高级的打印
5.5.1 printf 语句简介
5.5.2 格式控制字母
5.5.3 printf 格式的修饰符
5.5.4 使用 printf 的示例
5.6 重定向 print 和 printf 的输出
5.7 标准预打开数据流的特殊文件
5.8 gawk 中的特殊文件名
5.8.1 使用 gawk 访问其他打开的文件
5.8.2 用于网络通信的特殊文件
5.8.3 特殊文件名注意事项
5.9 关闭输入和输出重定向
5.9.1 使用 close() 的返回值
5.10 加快管道输出
5.11 启用 Nonfatal 输出
5.12 总结
5.13 练习
6 表达式
6.1 常量、变量和转换
6.1.1 常量表达式
6.1.1.1 数值和字符串常量
6.1.1.2 八进制数和十六进制数
6.1.1.3 正则表达式常量
6.1.2 使用正则表达式常量
6.1.2.1 标准正则表达式常量
6.1.2.2 强类型 Regexp 常量
6.1.3 变量
6.1.3.1 在程序中使用变量
6.1.3.2 在命令行中指定变量
6.1.4 字符串和数字的转换
6.1.4.1 awk 如何在字符串和数字之间进行转换
6.1.4.2 区域设置可以影响转换
6.2 运算符:对值执行某些作
6.2.1 算术运算符
6.2.2 字符串拼接
6.2.3 赋值表达式
6.2.4 递增和递减运算符
6.3 真值和条件
6.3.1 awk 中的 True 和 False
6.3.2 变量类型和比较表达式
6.3.2.1 字符串类型与数字类型
6.3.2.2 比较运算符
6.3.2.3 基于语言环境整理顺序的字符串比较
6.3.3 布尔表达式
6.3.4 条件表达式
6.4 函数调用
6.5 运算符优先级(运算符如何嵌套)
6.6 您所在的位置会有所不同
6.7 总结
7 模式、作和变量
7.1 Pattern 元素
7.1.1 作为模式的正则表达式
7.1.2 表达式作为模式
7.1.3 使用模式指定记录范围
7.1.4 BEGIN 和 END 特殊模式
7.1.4.1 启动和清理作
7.1.4.2 BEGIN 和 END 规则的输入/输出
7.1.5 BEGINFILE 和 ENDFILE 特殊模式
7.1.6 空模式
7.2 在程序中使用 Shell 变量
7.3作
7.4 Actions 中的控制语句
7.4.1 if-else 语句
7.4.2 while 语句
7.4.3 do-while 语句
7.4.4 for 语句
7.4.5 switch 语句
7.4.6 break 语句
7.4.7 continue 语句
7.4.8 next 语句
7.4.9 nextfile 语句
7.4.10 exit 语句
7.5 预定义变量
7.5.1 控制 awk 的内置变量
7.5.2 传达信息的内置变量
7.5.3 使用 ARGC 和 ARGV
7.6 总结
awk 中的 8 个数组
8.1 数组的基础
8.1.1 数组简介
8.1.2 引用数组元素
8.1.3 分配数组元素
8.1.4 基本数组示例
8.1.5 扫描数组的所有元素
8.1.6 将预定义的数组扫描顺序与 gawk 结合使用
8.2 使用数字为数组下标
8.3 将未初始化的变量用作下标
8.4 delete 语句
8.5 多维数组
8.5.1 扫描多维数组
8.6 数组中的数组
8.7 总结
9 主要工作内容
9.1 内置函数
9.1.1 调用内置函数
9.1.2 生成布尔值
9.1.3 数值函数
9.1.4 字符串作函数
9.1.4.1 有关 sub()、gsub() 和 gensub() 的 ’ \ ’ 和 ’ & ’ 的更多信息
9.1.5 输入/输出功能
9.1.6 时间函数
9.1.7 位作函数
9.1.8 获取类型信息
9.1.9 字符串翻译函数
9.2 用户定义的函数
9.2.1 函数定义语法
9.2.2 函数定义示例
9.2.3 调用用户定义的函数
9.2.3.1 编写函数调用
9.2.3.2 控制变量范围
9.2.3.3 按值或按引用传递函数参数
9.2.3.4 有关调用函数的其他要点
9.2.4 return 语句
9.3 变量类型是动态的
9.3.1 标准 awk 中的动态键入
9.3.2 在 gawk 中动态输入
9.4 间接函数调用
9.5 总结
第二部分:
用 awk 解决问题
10 awk 函数库
10.1 命名库函数全局变量
10.2 常规编程
10.2.1 将字符串转换为数字
10.2.2 断言
10.2.3 舍入数字
10.2.4 悬崖随机数生成器
10.2.5 在字符和数字之间进行翻译
10.2.6 将数组合并为字符串
10.2.7 管理一天中的时间
10.2.8 一次读取整个文件
10.2.9 引用要传递给 Shell 的字符串
10.2.10 检查值是否为数字
10.2.11 生成 CSV 数据
10.3 数据文件管理
10.3.1 记录数据文件边界
10.3.2 重新读取当前文件
10.3.3 检查可读数据文件
10.3.4 检查零长度文件
10.3.5 将工作分配视为文件名
10.4 处理命令行选项
10.5 读取用户数据库
10.6 读取 Group 数据库
10.7 遍历数组中的数组
10.8 总结
10.9 练习
11 实用的 awk 程序
11.1 运行示例程序
11.2 为了乐趣和利润而重新发明轮子
11.2.1 剪切字段和列
11.2.2 在文件中搜索正则表达式
11.2.3 打印出用户信息
11.2.4 将大文件分割成多个部分
11.2.5 将输出复制到多个文件中
11.2.6 打印非重复的文本行
11.2.7 计数
11.2.7.1 现代字符集
11.2.7.2 扩展简介
11.2.7.3 的代码 wc.awk
11.3 awk 程序的抓包
11.3.1 在文档中查找重复的单词
11.3.2 闹钟程序
11.3.3 音译字符
11.3.4 打印邮寄标签
11.3.5 生成单词使用计数
11.3.6 从未排序的文本中删除重复项
11.3.7 从 Texinfo 源文件中提取程序
11.3.8 简单的流编辑器
11.3.9 使用库函数的简单方法
11.3.10 从字典中查找 Anagram
11.3.11 现在 For Something Completely Different
11.4 总结
11.5 练习
第三部分:
超越标准,傻瓜
12 gawk 的高级功能
12.1 允许非十进制 Importing 数据
12.2 布尔类型化值
12.3 控制数组遍历和数组排序
12.3.1 控制数组遍历
12.3.2 使用 gawk 对数组值和索引进行排序
12.4 与其他进程的双向通信
12.5 使用 gawk 进行网络编程
12.6 对 awk 程序进行性能分析
12.7 在运行之间保留数据
12.8 内置功能与扩展
12.9 总结
13 使用 gawk 进行国际化
13.1 国际化和本地化
13.2 GNU gettext
13.3 国际化 awk 程序
13.4 翻译 awk 程序
13.4.1 提取标记的字符串
13.4.2 重新排列 printf 参数
13.4.3 awk 可移植性问题
13.5 一个简单的国际化示例
13.6 Gawk 会说你的语言
13.7 总结
14 调试 awk 程序
14.1 gawk 调试器简介
14.1.1 常规调试
14.1.2 调试概念
14.1.3 awk 调试
14.2 gawk 调试会话示例
14.2.1 如何启动 Debugger
14.2.2 查找 Bug
14.3 主要 Debugger 命令
14.3.1 断点控制
14.3.2 执行控制
14.3.3 查看和更改数据
14.3.4 使用堆栈
14.3.5 获取有关程序和调试器状态的信息
14.3.6 其他命令
14.4 Readline 支持
14.5 限制
14.6 总结
15 gawk 中的命名空间
15.1 标准 awk 的单个命名空间
15.2 限定名称
15.3 默认命名空间
15.4 更改名称空间
15.5 名称空间和组件命名规则
15.6 内部名称管理
15.7 命名空间示例
15.8 命名空间和其他 gawk 功能
15.9 总结
16 用 gawk 的算术和任意精度算术
16.1 计算机算术的一般描述
16.2 其他须知
16.3 gawk 中的任意精度算术特征
16.3.1 任意精度算术要假释了!
16.3.2 任意精度简介
16.4 浮点运算:Caveat Emptor!
16.4.1 浮点运算不精确
16.4.1.1 许多数字无法精确表示
16.4.1.2 小心比较值
16.4.1.3 错误累积
16.4.1.4 他们在学校里没有讨论的浮点值
16.4.2 获得所需的精度
16.4.3 尝试一些额外的精度和舍入
16.4.4 设置精度
16.4.5 设置舍入模式
16.5 使用 gawk 的任意精度整数算术
16.6 如何检查 MPFR 是否可用
16.7 标准与现有实践
16.8 总结
17 为 gawk 编写扩展
17.1 介绍
17.2 扩展许可
17.3 它在高级别上的工作原理
17.4 接口说明
17.4.1 简介
17.4.2 通用数据类型
17.4.3 内存分配函数和便捷宏
17.4.4 构造函数
17.4.5 管理 MPFR 和 GMP 值
17.4.6 注册函数
17.4.6.1 注册扩展函数
17.4.6.2 注册退出回调函数
17.4.6.3 注册扩展版本字符串
17.4.6.4 自定义输入解析器
17.4.6.5 自定义输出包装器
17.4.6.6 自定义双向处理器
17.4.7 打印消息
17.4.8 更新 ERRNO
17.4.9 请求值
17.4.10 访问和更新参数
17.4.11 符号表访问
17.4.11.1 按名称访问和更新变量
17.4.11.2 Cookie 的变量访问和更新
17.4.11.3 创建和使用缓存的值
17.4.12 数组作
17.4.12.1 数组数据类型
17.4.12.2 数组函数
17.4.12.3 使用数组的所有元素
17.4.12.4 如何创建和填充数组
17.4.13 访问和处理重定向
17.4.14 API 变量
17.4.14.1. API 版本常量和变量
17.4.14.2 GMP 和 MPFR 版本信息
17.4.14.3 信息变量
17.4.15 样板代码
17.4.16 API 版本 1 中的更改
17.5 gawk 如何查找扩展
17.6 示例:某些文件函数
17.6.1 使用 chdir() 和 stat()
17.6.2 chdir() 和 stat() 的 C 代码
17.6.3 集成扩展
17.7 gawk 分发中的示例扩展
17.7.1 与文件相关的函数
17.7.2 fnmatch() 接口
17.7.3 fork()、wait() 和 waitpid() 的接口
17.7.4 启用就地文件编辑
17.7.5 字符和数值:ord() 和 chr()
17.7.6 读取目录
17.7.7 倒车输出
17.7.8 双向 I/O 示例
17.7.9 转储和恢复阵列
17.7.10 读取整个文件
17.7.11 扩展时间函数
17.7.12 API 测试
17.8 gawkextlib 项目
17.9 总结
17.10 练习

这也行,从linux命令立马变得高大上了。后续会总结awk语言的常用案例。

—END—

相关文章:

linux awk命令和awk语言

linux awk和awk语言 通常大家说的awk几乎都是在linux/unix中使用的awk命令&#xff0c;见下&#xff0c; https://www.geeksforgeeks.org/awk-command-unixlinux-examples/ 作为命令使用的话&#xff0c;存在下内容 Awk 是一个工具&#xff0c;使程序员能够编写小巧但有效的…...

电脑网络出现问题!简单的几种方法解除电脑飞行模式

在某些情况下&#xff0c;您可能需要关闭电脑上的飞行模式以便重新连接到 Wi-Fi、蓝牙或其他无线网络。本教程中简鹿办公将指导您如何在 Windows 和 macO S操作系统上解除飞行模式。 一、Windows 系统下解除飞行模式 通过快捷操作中心 步骤一&#xff1a;点击屏幕右下角的通知…...

ASP.NET Core 6 MVC 文件上传

概述 应用程序中的文件上传是一项功能&#xff0c;用户可以使用该功能将用户本地系统或网络上的文件上传到 Web 应用程序。Web 应用程序将处理该文件&#xff0c;然后根据需要对文件进行一些验证&#xff0c;最后根据要求将该文件存储在系统中配置的用于保存文件的存储中&#…...

【VBA】WPS/PPT设置标题字体

通过VBA&#xff0c;配合左上角的快速访问工具栏&#xff0c;实现自动化调整 选中文本框的 字体位置、大小、颜色。 配合quicker更加便捷 Sub DisableAutoWrapAndFormat()Dim shp As Shape 检查是否选中了一个形状&#xff08;文本框&#xff09;If ActiveWindow.Selection.Typ…...

白盒测试(4):电源瞬态电流测试

电源瞬态电流测试至关重要&#xff0c;主要用于评估电源在负载突变时的响应能力。通过测试&#xff0c;可以确保电源在短时间内提供足够的电流并快速恢复稳定&#xff0c;避免电压波动或系统故障。这对于保证电子设备的可靠性和稳定性尤为关键&#xff0c;尤其是在高动态负载应…...

三维建模与视频融合(3D-Video Integration)技术初探。

三维建模与视频融合&#xff08;3D-Video Integration&#xff09;是一种将虚拟三维模型无缝嵌入实拍视频场景的技术&#xff0c;广泛应用于影视特效、增强现实&#xff08;AR&#xff09;、游戏开发、广告制作 、视频监控 等领域。 一、技术核心流程 三维建模与动画 使用工具…...

DeepSeek提问术:解锁AI交互新姿势-20 个精准提问框架

一、引言 在人工智能的浩瀚星空中,DeepSeek 无疑是一颗耀眼的新星,以其独特的光芒照亮了 AI 发展的新路径。自问世以来,DeepSeek 凭借先进的技术架构、强大的自然语言处理能力和出色的性能表现,迅速在竞争激烈的 AI 领域崭露头角,成为众多开发者、研究人员以及各行业从业者…...

避免魔法值和多层if的关键:编程范式和设计模式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、案例分析二、技术手段函数式接口在枚举中 三、优化后完整代码总结 前言 提示&#xff1a;避免魔法值和多层if的关键&#xff1a;编程范式和设计模式&#…...

第六课:数据存储三剑客:CSV/JSON/MySQL

在Python的数据存储与处理领域&#xff0c;CSV、JSON和MySQL被广大开发者誉为“数据存储三剑客”。它们各自在不同的场景下发挥着重要作用&#xff0c;无论是简单的数据交换、轻量级的数据存储&#xff0c;还是复杂的关系型数据库管理&#xff0c;都能找到它们的身影。本文将详…...

Qt常用控件之表格QTableWidget

表格QTableWidget QTableWidget 是一个表格控件&#xff0c;行和列交汇形成的每个单元格&#xff0c;是一个 QTableWidgetItem 对象。 1. QTableWidget属性 QTableWidget 的属性只有两个&#xff1a; 属性说明rowCount当前行的个数。columnCount当前列的个数。 2. QTableW…...

基于websocket的多用户网页五子棋 --- 测试报告

目录 功能测试自动化测试性能测试 功能测试 1.登录注册页面 2.游戏大厅页面 3.游戏房间页面 自动化测试 1.使用脑图编写web自动化测试用例 2.创建自动化项目&#xff0c;根据用例通过selenium来实现脚本 根据脑图进行测试用例的编写&#xff1a; 每个页面一个测试类&am…...

TypeError: Cannot assign to read only property ‘xxx‘ of object ‘#<Object>‘

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…...

SyntaxError: Unexpected token ‘xxx‘

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…...

简记_开关电源基础知识(二)

一、控制器与稳压器 假设开关损耗、导通损耗、驱动损耗的变化远小于输出功率的变化&#xff08;可忽略&#xff09;&#xff0c;则占空比越大&#xff0c;Po越大&#xff0c;效率越高。 二、同步与非同步 同步是采用通态电阻极低的MOSFET来取代整流二极管&#xff0c;以降低整…...

grum-与gam-词源故事

“grum”词根的含义主要与“咕隆、发哼声、咕咕叫、发隆隆声”等相关。在16世纪90年代后&#xff0c;这个词开始被用来表示发出低沉持续的咆哮声或隆隆声&#xff0c;类似于饥饿的胃或某些动物发出的声音。 早期的富贵家族经常雇佣人去干活&#xff0c;体力活很容易因为劳工过…...

联合索引关于In和范围查询影响索引使用的情况分析

索引类型 1、unique &#xff0c;唯一索引 2、normal&#xff0c;普通索引 3、fulltext, 全文索引 4、spatial&#xff0c;空间索引 样例 三个字段的联合索引&#xff0c;走一个字段是key_len是5&#xff0c;三个是15. 联合索引关于 使用in是不影响后续列 范围查询大于或小于…...

【目标检测】【NeuralPS 2023】Gold-YOLO:通过收集与分发机制实现的高效目标检测器

Gold-YOLO&#xff1a; Efficient Object Detector via Gather-and-Distribute Mechanism Gold-YOLO&#xff1a;通过收集与分发机制实现的高效目标检测器 0.论文摘要 在过去的几年中&#xff0c;YOLO系列模型已成为实时目标检测领域的领先方法。许多研究通过修改架构、增强数…...

2025上软考下周开启报名!附报考流程和常见问题解答

报名时间 &#xff1a;3月10日开始报名&#xff08;以当地报名时间为准&#xff09; 考试时间 &#xff1a;2025年5月24日~27日&#xff08;具体时间以准考证为准&#xff09; 报名网址 &#xff1a;中国计算机技术职业资格网(https://bm.ruankao.org.cn/sign/welcome) 目前已…...

PPT 小黑第16套

对应大猫19 在excel中复制表格 粘贴-选择性粘贴 -粘贴链接 业务部门和档案管理部门 剩下都是他们的下属级别 业务部门下面的选中按Tab 再选中Tab降级变成所属...

Swagger-01.介绍和使用方式

一.Swagger介绍 有了接口文档&#xff0c;我们就可以根据接口文档来开发后端的代码了。如果我们开发完了某个功能&#xff0c;后端如何验证我们开发的是否正确呢&#xff1f;我们就需要测试&#xff0c;使用Swagger就可以帮助后端生成接口文档&#xff0c;并且可以进行后端的接…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...