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

第5.3节:awk数据类型

1 第5.3节:awk数据类型

  awk并没有非常严格的数据类型,但在编写代码的过程中,大致可以分为以下数据类型:

1.1 数字型

#普通表示法
a = 123
b = 123.333
#科学表示法
c = 1.33e13
d = 1.05e-5

代码示例:

$ echo |awk '{
> print 123
> print 123.333
> print 1.33e13
> print 1.05e-5
> }'
123
123.333
13300000000000
1.05e-05
🕮说明
  在可处理的范围内,科学计数法的数字输出时可能会转换成普通表示法。

1.2 不同进制的表示

  在编写代码过程中,可能会用到8进制与16进制的描述,绝大部分编程语言都提供了这些进制的表示方法。
以下是这段内容的翻译:

数值表示说明
11十进制值 11
011八进制 11,十进制值为 9
0x11十六进制 11,十进制值为 17
$ gawk 'BEGIN { printf "%d, %d, %d\n", 011, 11, 0x11 }'
输出:
9, 11, 17

1.3 字符串型

  和大多数编程语言一样, 字符串使用双引号来表示:

"string"

代码示例:

$ echo |awk '{
> print "hello"
> }'
hello

如果文本行比较长,可以使用“\”进行换行书写, 换行后新行前的空白符需要注意,会被当成字符串的内容:

#!/bin/gawk -f
BEGIN {str = "this is \a long text \with many lines."print str
}
输出:
this is         a long text     with many lines.

1.4 正则表达式类型

  正则表达式也是一种数据类型,前面的章节已经介绍过正则表达式的使用,描述正则表达式常量是使用两条斜线前后包围该常量,如:/regex/

示例1:

if ($0 ~ /^\s*$/)
{...
}

上面的例子中使用了正则表达式常量/^\s*$/

示例2:

re = /^\s*$/ #这里的正则表达式赋值是错误的!
if($0 ~ re)
{...
}

注:re = /^\s*$/实际是re = $0 ~ /^\s*$/的结果。

如:下面的代码,re的结果是1

$ echo | awk '{re = /^\s*$/;print re}'
1

如果非要将正则表达式赋值给一个变量该怎么办呢?可以在赋值时在正则表达式前加一个@符号:

$ echo | awk 'BEGIN { re = @/^\s*$/} {if($0 ~ re) {print "matched!"}}'
matched!

作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.

http://www.xdnf.cn/news/18552.html

相关文章:

  • 部署Qwen2.5-VL-7B-Instruct-GPTQ-Int3
  • linux中的iptables的简介与常用基础用法
  • ES_分词
  • OpenCV图像形态学操作
  • 智能求职推荐系统
  • ES6 面试题及详细答案 80题 (01-05)-- 基础语法与变量声明
  • 在 Linux 中全局搜索 Word 文档内容的完整指南
  • DeepSeek R2难产:近期 DeepSeek-V3.1 发布,迈向 Agent 时代的第一步
  • (LeetCode 面试经典 150 题) 129. 求根节点到叶节点数字之和 (深度优先搜索dfs)
  • windows中bat脚本中一些操作(一)
  • 面试紧张情绪管理:如何保持冷静自信应对挑战
  • ES_预处理
  • 自定义SamOut模型在随机序列生成任务上超越Transformer
  • DINOv3 重磅发布
  • CLruCache::BucketFromIdentifier函数分析
  • k8s集群限制不同用户操作
  • 基于springboot的中医养生管理系统
  • 机器学习-聚类算法
  • 【算法精练】 哈夫曼编码
  • Kotlin-基础语法练习二
  • 【python】python测试用例模板
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第二章知识点问答(21题)
  • 效果驱动复购!健永科技RFID牛场智能称重项目落地
  • AI资深 Java 研发专家系统解析Java 中常见的 Queue实现类
  • 手机惊魂
  • MySQL高可用之MHA
  • 【智慧城市】2025年中国地质大学(武汉)暑期实训优秀作品(1):智绘旅程构建文旅新基建
  • 稀土元素带来农业科技革命
  • 哈尔滨服务器托管,如何实现高效稳定运行?
  • OBCP第四章 OceanBase SQL 调优学习笔记:通俗解读与实践指南