您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用AWK根据列数过滤行

使用AWK根据列数过滤行

您需要使用NF(字段数)变量来控制操作,例如以下记录:

$ echo '0333 foo
>  bar
> 23243 qux' | awk 'NF==2{print}{}'
0333 foo
23243 qux

如果字段数为2,将打印该行,否则将不执行任何操作。我之所以具有(看似)奇怪的构造,NF==2{print}{}是因为awk如果没有任何规则匹配一行,则认情况下将打印的某些实现。empty命令{}保证不会发生这种情况。

如果您很幸运地拥有其中一个不做此事的人,则可以摆脱:

awk 'NF==2'

但以上第一种解决方案在 两种 情况下 适用。

其他 2022/1/1 18:20:48 有466人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶