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

第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.dtcms.com/a/344997.html

相关文章:

  • gcc 和 make 命令
  • 机试备考笔记 17/31
  • 打工人日报20250822
  • Redis 部署模式深度对比与选型指南
  • 计算机毕设大数据方向:电信客户流失数据分析系统技术实现详解
  • ​如何用 Windows 10 ISO 文件重装系统?U盘安装教程(附安装包下载)
  • Kubernetes 调度器 详解
  • 加密货币与区块链:六大刑事重灾区
  • Vue3源码reactivity响应式篇之Reactive
  • 阿里云日志服务与Splunk集成方案(Splunk Add-on方式)实战
  • GitGithub相关(自用,持续更新update 8/23)
  • 通义万相:AI生视频提示词生成秘籍/指南
  • 高空作业智能安全带如何监控使用异常行为
  • Linux 下的网络编程
  • Linux笔记8——shell编程基础-2
  • ROS学习笔记1-幻宇机器人为模板
  • Windows11 家庭版永久解密BitLocker加密移动硬盘
  • 【Java并发编程】Java多线程深度解析:状态、通信与停止线程的全面指南
  • RK3506-PWM计数功能
  • c#实现鼠标mousemove事件抽稀,避免大数据阻塞网络
  • 【COMSOL】Comsol学习案例时的心得记录分享(三)
  • 罗技鼠标驱动下载教程 多种方法详细说明
  • 排序---插入排序
  • CS 创世 SD NAND 助力 T-BOX:破解智能汽车数字中枢的存储密码
  • 110、【OS】【Nuttx】【周边】效果呈现方案解析:查找最新构建件
  • C++/QT 开发技能树详解
  • 钉钉 Stream 模式SpringBoot接入配置与事件监听
  • Maxscript如何清理3dMax场景?
  • react样式问题
  • git旧仓库迁移到新仓库