awk 多个匹配模式

标签 awk

awk 似乎匹配所有匹配表达式的模式并执行相应的操作。是否有可以关联的优先级?

例如。在下面,以#(注释)开头的行被两个模式匹配,并且两个 Action 都被执行。我希望注释行仅匹配第一个操作。

/^#.*/  {
    // Action for lines starting with '#'
}


{
    // Action for other lines
}

最佳答案

如果你想保持你已经拥有的大部分代码完整无缺,你可以使用 awk next 语句。一旦遇到 next 语句,awk 将跳过处理当前记录并转到下一行。

因此,如果将 next 放入第一个块的底部,则不会执行第二个块。

关于awk 多个匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12252587/

相关文章:

linux - 如何在 BASH 中将两个表相乘

linux - 添加从特定 Ips 生成的总累积数据

dataframe - 计算成功的值转换

unix - 使用大于数字的列值过滤文件(awk 不起作用)

linux - 提取部分路径

linux - 返回参数内的字符串 sed/grep/awk/gawk

linux - 使用 AWK 或 Perl 解析 SGE (qstat -j "*") 的输出

regex - 如何使用 sed、awk 或 gawk 只打印匹配的内容?

shell - 基于linux中的两个键合并两个长度不等的文件

linux - "quick select"(或类似)在 Linux 上的实现? (而不是 sort|uniq -c|sort -rn|head -$N)