AWK:使用正则表达式缩短 if-then-else

2024-01-13

AWK 格式如下:

/REGEX/ {Action}

将执行Action如果当前行匹配REGEX.

有没有办法添加一个else子句,如果当前行与正则表达式不匹配,则将执行该子句,而不显式使用 if-then-else,如下所示:

/REGEX/ {Action-if-matches} {Action-if-does-not-match}

没那么短:

/REGEX/ {Action-if-matches} 
! /REGEX/ {Action-if-does-not-match}

但 (g)awk 也支持三元运算符:

{ /REGEX/  ? matching=1 : matching = 0 ; if ( matching ==1 ) { matching_action } else { notmatching_action } }

UPDATE:

根据伟大的格伦·杰克曼的说法,你可以在比赛中分配变量,例如:

m = /REGEX/ { matching-action } !m { NOT-matching-action }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWK:使用正则表达式缩短 if-then-else 的相关文章

  • Python RE(总之检查第一个字母是否区分大小写,其余部分不区分大小写)

    在下面的情况下 我想匹配字符串 Singapore 其中 S 应始终为大写 其余单词可能为小写或大写 但在下面的字符串 s 是小写的 它在搜索条件中匹配 任何人都可以让我知道如何实施吗 import re st Information in
  • 多行 C# 正则表达式在空行后匹配

    我正在寻找一个多行正则表达式 它将匹配空行后出现的情况 例如 给定下面的示例电子邮件 我想匹配 发件人 Alex From s 可以匹配任何 From 行 但我希望它仅限于正文中的行 第一个空白行之后的任何行 Received from a
  • 以任意顺序匹配可选捕获组

    在解析用户输入的许多情况下 用户有机会向输入添加几个可选标志 这些标志应该以任何顺序接受 如何使用正则表达式对其进行解析 以便每个标志都位于它自己的捕获组中 如果存在 例如 有一个必需的令牌a 然后是 3 个可选标记 可以按任何顺序出现b
  • Kate 文本编辑器正则表达式用于在 PC 上更改 CNC 代码

    使用某些CAM软件时 通常会正确生成带有空格的CNC代码 但例如 当通过 USB 或网络移动到 Citizen Cincom L20 机器并在那里进行编辑时 它会丢失空格 也会丢失分号 同时保留新行 无论如何 这些行都可以作为分号使用 但是
  • 正则表达式匹配带有连字符和/或撇号的单词

    我正在寻找一个正则表达式来匹配带有连字符和 或撇号的单词 到目前为止 我有 w w w 这在大多数情况下都有效 但如果先有一个撇号 然后有一个连字符 例如 qu est ce 则它不匹配 我可以附加更多选项 尽管也许还有另一种更有效的方法
  • 正则表达式从字符串中提取 IP 和端口

    我正在使用 Perl 尝试从字符串中提取 IP 地址和端口 我尝试使用的正则表达式是 s sip 字符串是 sip 255 255 255 255 8080 transport TCP sip 255 255 255 255 8080 显然
  • 如何使用 sed 仅删除双空行?

    我找到了这个问题和答案 https stackoverflow com questions 4651591 howto use sed to remove only triple empty lines关于如何删除三重空行 但是 我只需要对
  • 正则表达式允许零,只要它不是第一个数字[重复]

    这个问题在这里已经有答案了 昨天我在这里发布了一个问题正则表达式允许 null 或 1 到 9 数字 https stackoverflow com questions 40354842 regular expression allow n
  • 为什么这个没有特殊字符的正则表达式会匹配更长的字符串?

    我正在使用此方法来尝试查找匹配项 例如 Regex Match A2 TS OIL TS OIL RegexOptions IgnoreCase Success 我得到了真实的结果 我很困惑 我认为这应该返回 false 因为模式中没有特殊
  • preg_match 所有以@开头的单词?

    我对正则表达式不太确定 所以我不得不问你 如何用 PHP 判断字符串中是否包含以 开头的单词 例如我有一个像 This is for codeworxx 这样的字符串 我很抱歉 但我没有任何起点 希望你能帮忙 谢谢 萨沙 好的 谢谢你的结果
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1
  • 如何检查号码是否是巴基斯坦用户的手机号码而不是固定电话号码

    我所做的是从开头删除 92 或 0092 并使用以下代码检查它是否是巴基斯坦人的有效手机号码 if preg match 3 0 4 0 9 number 1 Pakistani mobile number else not a pakis
  • 选择前 n 个字符相等的行(MySQL)

    我有一张带有玩家句柄的桌子 如下所示 1 N Laka 2 N James 3 nor Brian 4 nor John 5 Player 2 6 Spectator 7 N Joe 从那里我想选择第一个 n 字符匹配的所有玩家 但我不知道
  • 什么是仅匹配空字符串的正则表达式?

    有很多关于正则表达式的帖子来匹配潜在地空字符串 但我找不到任何提供正则表达式的字符串only匹配一个空字符串 我知道 将匹配任何行的开头并且 将匹配任何行的结尾以及字符串的结尾 像这样 匹配的内容远不止空字符串 如 n foobar n n
  • PHP解析xml文件错误

    我正在尝试使用 simpleXML 来获取数据http rates fxcm com RatesXML http rates fxcm com RatesXML Using simplexml load file 我有时会遇到错误 因为这个
  • 使用 posix shell 测试字符串中的正则表达式

    如何测试字符串是否与特定字符串匹配正则表达式与基本 无 bash 或任何其他 posix shell 脚本 在 if 语句中 您可以使用expr在 POSIX shell 中计算正则表达式的命令 s Abc expr s alpha 3 e
  • Pure Bash 替换捕获组

    我有这个示例字符串 test string 13A6 该字符 数字可以是从 0 到 9 以及从 A 到 F 我想要这个输出 1 3 A 6 我有这个工作 result echo test string sed s g 我想在没有 sed 的
  • Word通配符搜索的正则表达式查找包含至少3个连续数字的括号

    在以下示例中 airspeed AS user 104A 104B device 101 vehicles 105A C 搜索应该找到 104A 104B 101 and 105A C 但不是 AS 我尝试使用 0 9 0 9 0 9 但这
  • Java 正则表达式 - 字母数字,最多一个连字符,句点或下划线,七个字符长

    我是 Java 正则表达式工具的新手 尽管它们潜力巨大 但我很难完成这项任务 我想编写一个正则表达式来验证遵循以下语法的输入字符串 小写字母和数字的任意组合 仅一个下划线 一个破折号或一个句号 无其他特殊字符 最小长度为 5 我想出了以下解
  • 创建正则表达式匹配数组

    在Java中 我试图将所有正则表达式匹配返回到一个数组 但似乎您只能检查模式是否匹配某些内容 布尔值 如何使用正则表达式匹配来形成与给定字符串中的正则表达式匹配的所有字符串的数组 4城堡的回答 https stackoverflow com

随机推荐

  • 从编辑控件获取文本

    我试过这个 int editlength int buttonid 3324 id to button the numbers dont mean anything int editid 5652 id to edit LPTSTR edi
  • 抓取域列表的登陆页面[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个相当长的网站列表 我想下载
  • 切片神奇地更新

    我正在尝试编写一个程序来查找二叉树中的所有根到叶路径 其中每个路径的总和等于给定的总和 以下是我想出的代码 package main import fmt type TreeNode struct Val int Left TreeNode
  • 如何在VS中调试appdomain返回值

    我的 C 程序使用多个应用程序域来加载 卸载程序集 我在第二个应用程序域中的程序集返回一个继承 MarshalByRefObject 的对象 我现在的问题是 Visual Studio 告诉我它无法显示有关它的信息 此上下文中不支持获取透明
  • 在没有 Spring Boot 应用程序主类的项目中测试 Spring Data Repository

    我有一个小项目 不包含运行 Spring Boot 应用程序的类 在该课程中 我只有一些配置和一些存储库 我想在小项目中测试这些存储库 为此 我有以下几点 SpringBootTest DataJpaTest public class Ta
  • Vim html.erb 片段? snipMate 需要 vim 提示

    当我在 html erb 文件中时 我没有得到 snipMate 片段 我想要 HTML 和 Ruby 或者只需要 HTML 我该怎么做 我需要写一组片段吗 如果是这样 是否有一种方法可以提取现有的片段而不复制它们 有没有办法告诉vim在看
  • 禁用特定 Go-Gin 路由的请求日志记录

    我有很多路线 从杜松子酒开始gin Default 默认情况下启用所有路由的日志记录和恢复 但只有一条路线 即 health 每 5 秒就会 ping 一次 在不更改大量代码的情况下禁用该路由的请求日志记录的直接方法是什么 func mai
  • Karate DSL Framework 是否具有执行负载测试的能力

    目前 我们已经使用 Karate 框架自动化了所有的 Web 服务 这非常酷 我们有什么方法可以使用这个工具进行负载测试吗 示例 当我注册会员 1000 次时给出 那么平均响应时间应该是2 7毫秒 我是空手道的开发者 很高兴听到这个反馈 谢
  • Atom Shell 中的跨域 Ajax 调用

    我们正在与 Atom Shell 目前称为electron https github com atom electron 将 Web 应用程序包装为桌面应用程序 并且由于 CORS 限制而无法进行跨域 ajax 调用 我们也尝试过nw js
  • 迭代 mat-table Angular 中的数据源

    我在通过 dataSource 进行迭代时遇到问题 其中我有 mat table 的数据 div class my item div span class skuska span class mat subheading 2 element
  • 在服务中使用哪个上下文?

    我想调用其他需要 Context 作为输入参数的类中的方法 但我在服务中有 3 种可能性 getApplicationContext getBaseContext getApplication 用在哪一个ScreenService whic
  • .htaccess URL 重定向

    我怎样才能重定向http domain com blog index php weblog rss 2 0 http domain com blog index php weblog rss 2 0 to http www domain c
  • 如何在使用 Boost C++ 编写的 php Web 应用程序中读取地图(在共享区域中)?

    我在共享区域中使用 C Boost 库编写了一张映射 键 值 void CreateIndexMap shared memory object remove Getsharedmemoryregion managed shared memo
  • Windows Phone 7 TextBlock TextWrapping 在列表框中不受支持

    我有一个列表框定义为
  • Woocommerce 结账页面中的自定义统一费率描述文本

    我在运输区域内设置了两种统一费率运输方式 结帐时这两种运输方式都可用 我想在每个统一费率运输选项下显示文本说明 WooCommerce 中似乎没有任何选项可以执行此操作 我已经尝试过以下代码 但不用说它不起作用 add filter woo
  • 明白ES6中数组的区别了吗?

    所以我有两个数组 const allLanguages ES EN DE const usedLanguages id 1 lang EN 生成新数组的最快方法是什么 这两者之间有什么区别 在老式的 JavaScript 中 你必须在另一个
  • Android 中的图像视图上的文本叠加

    我正在尝试将文本视图覆盖在图像视图上 像这样的东西 有人可以帮我解决代码吗 将TextView和ImageView包裹到FrameLayout中 将TextView放在FrameLayout中ImageView之后 然后 将 FrameLa
  • debounce 不适用于 Angular 中的 keyup 事件

    我有一个text box输入一些文本来搜索记录 我在用data ng model options debounce 1000 with keyup event data ng model options 工作正常 但我想解雇keyup事件之
  • 删除特定列中第一次出现 NaN 后的所有行(pandas)

    我正在尝试使用 pandas 中的 dropna 函数 我想将它用于特定的列 如果所有行都有所有 NaN 值 我只能弄清楚如何使用它来删除 NaN 我有一个数据框 见下文 我想在第一次出现 NaN 后删除所有行specific列 A 列 当
  • AWK:使用正则表达式缩短 if-then-else

    AWK 格式如下 REGEX Action 将执行Action如果当前行匹配REGEX 有没有办法添加一个else子句 如果当前行与正则表达式不匹配 则将执行该子句 而不显式使用 if then else 如下所示 REGEX Action