首页 > 解决方案 > 根据使用 Awk 的给定表情符号显示特定行?

问题描述

我有一个名为emoji.txt以下的文件:

 Human 1 Disconnected 
VPN1 Human 2 Disconnected
 Human 3 Is Connected
VPN2 Human 4 Connected
 Human 5 Disconnected
 Human 6 Connected 
VPN4 Human 7 Disconnected
 Human 8 Connected

那么我希望得到这样的结果:

 Human 1 Disconnected 
 Human 3 Is Connected
 Human 5 Disconnected
 Human 6 Connected 
 Human 7 Connected

目前我从 awk 开始,根据给定的表情符号,我只能得到一个:

 Human 6 Connected 
 Human 7 Connected

功能:

 awk -F"\t" '// {print $0}'  emoji.txt

但这不是我想要做的,而不是只得到一个我想得到所有我试过的

 awk -F"\t" '//\/\/\// {print $0}'  emoji.txt

但什么也没发生。

标签: linuxunixawk

解决方案


您应该在 awk 模式中使用交替:

awk '/|||/' emoji.txt

请注意,;括号内的表达式被视为文字符号。

表情符号是多字节代码点,在括号表达式中使用它们可能会产生意外的输出,因此首选替代。

此外,{print $0}是默认操作,因此您可以省略它。由于您稍后不使用字段分隔符,因此-F"\t"也是多余的(因为默认情况下,记录被拆分为具有任何水平空白字符的字段)。


推荐阅读