首页 > 解决方案 > 与 ; 之间的区别 并且没有;在 awk 命令的表达式中

问题描述

我有一个关于 awk 的问题,命令:

awk 'NR!=1 {print $0}' FILENAMEawk 'NR!=1;{print $0}' FILENAME会产生不同的结果。

我想知道表达式中有;和没有有什么区别。谢谢;

标签: awk

解决方案


awk 程序是一系列模式/动作对。该程序

awk 'NR!=1 {print $0}'

{print $0}对任何为NR!=1真的记录执行命令,但是

awk 'NR!=1;{print $0}'

有 2 个模式动作对。第一个是NR!=1默认操作(因为没有指定操作)。默认操作是打印,以便对打印除第一条记录之外的所有记录。第二个模式/动作对没有模式,所以它总是执行,打印每条记录。

也许将第二个重写为:

awk 'NR!=1{print}
1{print $0}'

使两个模式/动作对明确。


推荐阅读