下面有一个名为 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
但是什么也没发生。
最佳答案
您应该在 awk 模式中使用交替:
awk '/🙂|😆|😃|😀/' emoji.txt
请注意,括号表达式内的 ;
被视为文字符号。
表情符号是多字节代码点,在括号表达式内使用它们可能会产生意外的输出,因此首选交替。
此外,{print $0}
是默认操作,因此您可以忽略它。由于您稍后不使用字段分隔符,因此 -F"\t"
也是多余的(因为记录默认情况下会被分割成具有任何水平空白字符的字段)。
关于linux - 使用 Awk 根据给定的表情符号显示特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59409878/