第4.1节:使用正则表达式
1 第4.1节:使用正则表达式
将正则表达式用斜杠括起来,就能用作模式。随后,该正则表达式会与每条输入记录的完整文本进行比对。(通常情况下,它只需匹配文本的部分内容就能视作匹配成功。)例如,以下代码会打印出mail-list文件中,任意位置出现字符串li的记录的第二个字段:
$ awk '/li/ { print $2 }' mail-list
执行结果:
555-5553
555-0542
555-6699
555-3430
正则表达式也能用于匹配表达式中。这些表达式允许你指定要匹配的字符串,该字符串不必是当前输入记录的全部内容。~和!~这两个操作符用于执行正则表达式的比较操作。使用这些操作符的表达式,既可以用作模式,也能在if、while、for和do语句中使用(详见第7.4节 “动作中的控制语句”)。例如,对于以下表达式,如果exp(作为字符串看待)与regexp匹配,则表达式的值为真:
exp ~ /regexp/
下面的示例会匹配(筛选出)所有第一个字段中含有大写字母J的输入记录:
$ awk '$1 ~ /J/' inventory-shipped
执行结果:
Jan 13 25 15 115
Jun 31 42 75 492
Jul 24 34 67 436
Jan 21 36 64 620
下面这段代码也能实现相同的功能:
awk '{ if ($1 ~ /J/) print }' inventory-shipped
再看下面这个例子,如果exp(作为字符串看待)与regexp不匹配,那么表达式的值为真:
exp !~ /regexp/
下面的示例会匹配(筛选出)所有第一个字段中不包含大写字母J的输入记录:
$ awk '$1 !~ /J/' inventory-shipped
执行结果:
Feb 15 32 24 226
Mar 15 24 34 228
Apr 31 52 63 420
May 16 34 29 208
当一个正则表达式被包含在斜杠中,如/foo/,我们称其为正则表达式常量,这与5.27是数值常量、"foo"是字符串常量的概念类似。
作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.
相关文章:
第4.1节:使用正则表达式
1 第4.1节:使用正则表达式 将正则表达式用斜杠括起来,就能用作模式。随后,该正则表达式会与每条输入记录的完整文本进行比对。(通常情况下,它只需匹配文本的部分内容就能视作匹配成功。)例如,以…...
【算法day25】 最长有效括号——给你一个只包含 ‘(‘ 和 ‘)‘ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
32. 最长有效括号 给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 https://leetcode.cn/problems/longest-valid-parentheses/ 2.方法二:栈 class Solution { public:int longestValid…...
Jenkins + CICD流程一键自动部署Vue前端项目(保姆级)
git仓库地址:参考以下代码完成,或者采用自己的代码。 南泽/cicd-test 拉取项目代码到本地 使用云服务器或虚拟机采用docker部署jenkins 安装docker过程省略 采用docker部署jenkins,注意这里的命令,一定要映射docker路径,否则无…...
C 语言的未来:在变革中坚守核心价值
一、从 “古老” 到 “长青”:C 语言的不可替代性 诞生于 20 世纪 70 年代的 C 语言,历经半个世纪的技术浪潮,至今仍是编程世界的 “基石语言”。尽管 Python、Java 等高级语言在应用层开发中占据主流,但 C 语言在系统级编程和资…...
一款超级好用且开源免费的数据可视化工具——Superset
认识Superset 数字经济、数字化转型、大数据等等依旧是如今火热的领域,数据工作有一个重要的环节就是数据可视化。 看得见的数据才更有价值! 现如今依旧有多数企业号称有多少多少数据,然而如果这些数据只是呆在冷冰冰的数据库或文件内则毫无…...
Vue3组合式API与选项式API的核心区别与适用场景
Vue.js作为现代前端开发的主流框架之一,在Vue3中引入了全新的组合式API(Composition API),与传统的选项式API(Options API)形成了两种不同的开发范式。在当前开发中的两个项目中分别用到了组合式和选项式,故记录一下。本文将全面剖析这两种AP…...
RedHatLinux(2025.3.22)
1、创建/www目录,在/www目录下新建name和https目录,在name和https目录下分别创建一个index.htm1文件,name下面的index.html 文件中包含当前主机的主机名,https目录下的index.htm1文件中包含当前主机的ip地址。 (1&…...
【C++篇】类与对象(上篇):从面向过程到面向对象的跨越
💬 欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习! 👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对C感兴趣的…...
深搜专题13:分割回文串
描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案数。 例如: 输入:“aab” 输出:2 2种方案数是[“a”,“a”,“b”]和[“aa”,“b”] 输入描述 一个字符串 s&#…...
OGG故障指南:OGG-01163 Bad column length (xxx) specified for column
报错 OGG-01163 Bad column length (xxx) specified for column AAA in table OWNER.TABLE, maximum allowable length is yyy原因 源端修改了字段长度。 虽然源端和目标端的长度已经通过DDL语句修改到一致,在extract进程未重启的情况下,生成的trail文…...
智慧运维平台:赋能未来,开启高效运维新时代
在当今数字化浪潮下,企业IT基础设施、工业设备及智慧城市系统的复杂度与日俱增,传统人工运维方式已难以满足高效、精准、智能的管理需求。停机故障、低效响应、数据孤岛等问题直接影响企业运营效率和成本控制。大型智慧运维平台(AIOps, Smart…...
基于大语言模型的智能音乐创作系统——从推荐到生成
一、引言:当AI成为音乐创作伙伴 2023年,一款由大语言模型(LLM)生成的钢琴曲《量子交响曲》在Spotify冲上热搜,引发音乐界震动。传统音乐创作需要数年专业训练,而现代AI技术正在打破这一壁垒。本文提出一种…...
Reactive编程:什么是Reactive编程?Reactive编程思想
文章目录 **1. Reactive编程概述****1.1 什么是Reactive编程?****1.1.1 Reactive编程的定义****1.1.2 Reactive编程的历史****1.1.3 Reactive编程的应用场景****1.1.4 Reactive编程的优势** **1.2 Reactive编程的核心思想****1.2.1 响应式(Reactive&…...
深度剖析:U盘突然无法访问的数据拯救之道
一、引言 在数字化办公与数据存储日益普及的当下,U盘凭借其小巧便携、即插即用的特性,成为了人们工作、学习和生活中不可或缺的数据存储工具。然而,U盘突然无法访问这一棘手问题却时常困扰着广大用户,它不仅可能导致重要数据的丢失…...
23种设计模式中的备忘录模式
在不破坏封装的前提下,捕获一个对象的内部状态,并允许在对象之外保存和恢复这些状态。 备忘录模式,主要用于捕获并保存一个对象的内部状态,以便将来可以恢复到该状态。 备忘录的模式主要由三个角色来实现:备忘录、发起…...
蓝桥杯-特殊的三角形(dfs/枚举/前缀和)
思路分析 深度优先搜索(DFS)思路 定义与参数说明 dfs 函数中,last 记录上一条边的长度,用于保证新选边长度大于上一条边,实现三边互不相等 。cnt 记录已选边的数量,当 cnt 达到 3 时,就构成了…...
我的编程之旅:从零到无限可能
一、自我介绍 大家好,我是望云山,一名智能科学与技术专业的大一学生 痴迷于用代码解决现实问题,尤其是自动化工具开发与智能硬件交互方向 2024年偶然用Python写了一个自动整理文件的脚本,第一次感受到“代码即魔法”的震撼 二、…...
一文详解k8s体系架构知识
0.云原生 1.k8s概念 1. k8s集群的两种管理角色 Master:集群控制节点,负责具体命令的执行过程。master节点通常会占用一股独立的服务器(高可用部署建议用3台服务器),是整个集群的首脑。 Master节点一组关键进程…...
wx162基于springboot+vue+uniapp的在线办公小程序
开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…...
Baklib内容中台的核心优势是什么?
智能化知识管理引擎 Baklib的智能化知识管理引擎通过多源数据整合与智能分类技术,实现企业知识资产的自动化归集与动态更新。系统内置的语义分析算法可自动识别文档主题,结合自然语言处理技术生成结构化标签体系,大幅降低人工标注成本。针对…...
【C++】C++11介绍列表初始化右值引用和移动语义
个人主页 : zxctscl 如有转载请先通知 文章目录 1. C11简介2. 统一的列表初始化2.1{}初始化2.2 std::initializer_list 3. 声明3.1 auto3.2 decltype3.3 nullptr 4. 范围for循环4.1 范围for的语法4.2 范围for的使用条件 5. STL中一些变化6. 右…...
搜广推校招面经六十一
美团推荐算法 一、ANN算法了解么?说几种你了解的ANN算法 ANN 近似最近邻搜索(Approximate Nearest Neighbor Search)算法 1.1. KD-Tree(K-Dimensional Tree,K 维树) 类型: 空间划分数据结构适用场景: 低…...
人工智能与软件工程结合的发展趋势
AI与软件工程的结合正在深刻改变软件开发的流程、工具和方法,其发展方向涵盖了从代码生成到系统维护的整个生命周期。以下是主要的发展方向和技术趋势: 1. 软件架构体系的重构 从“面向过程”到“面向目标”的架构转型: AI驱动软件设计以目标…...
nacos 外置mysql数据库操作(docker 环境)
目录 一、外置mysql数据库原因: 二、数据库准备工作 三、构建nacos容器 四、效果展示 一、外置mysql数据库原因: 想知道nacos如何外置mysql数据库之前,我们首先要知道为什么要外置mysql数据库,或者说这样做有什么优点和好处&am…...
动力电池热失控:新能源汽车安全的“隐形火山”如何预防?
一、火山爆发前的征兆:热失控的演化逻辑 在锂离子电池内部,正负极材料与电解液的 “亲密接触” 本是能量转换的基石,但当温度突破 180℃临界点,电解液就像被点燃的火药库。以三元锂电池为例,镍钴锰氧化物在 200℃以上…...
【数电】半导体存储电路
组合逻辑电路输入和输出之间是确定关系,与之前的历史记录没有任何关系。时序逻辑电路则有相应的存储元件,要把之前的状态保存起来。 要构成时序逻辑电路,必须要有相应的存储元件,第五章讲述相应的存储元件 一、半导体存储电路概…...
Jenkins插件安装失败如何解决
问题:安装Jenkins时候出现插件无法安装的情况。 测试环境: 操作系统:Windows11 Jenkins:2.479.3 JDK:17.0.14(21也可以) 解决办法一: 更换当前网络,局域网、移动、联通…...
postman测试文件上传接口详解
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 postman是一个很好的接口测试软件,有时候接口是Get请求方式的,肯定在浏览器都可以测了,不过对于比较规范的RestFul接口&#x…...
什么是贴源库
贴源库的定义与核心概念 贴源库(Operational Data Store, ODS)是数据架构中的基础层,通常作为数据仓库或数据中台的第一层,负责从业务系统直接抽取、存储原始数据,并保持与源系统的高度一致性。其核心在于“贴近源头”…...
UE5中开启ACES工作流程
首先要开启OCIO插件 OpenColorIO 创建配置 下载ACES https://github.com/colour-science/OpenColorIO-Configs/tree/feature/aces-1.2-config 加载ACES的ocio 选择Srgb 选择ACES 参考链接: https://zhuanlan.zhihu.com/p/534357694 https://www.youtube.com/watch?vBo3Bvh…...
