如何在awk的记录分隔符内设置符号



如何在awk的记录分隔符中包含符号?我知道基本的语法是这样的:

awk 'BEGIN{RS="[:.!]"}{if (tolower($0) ~ "$" ) print $0 }'

,它将基于!将单行分隔为单独的记录。。和:但我也想包括符号,像绿色的复选标记这个。我在理解语法方面有困难,所以我把它放在这样的

awk 'BEGIN{RS="[:.!u2705]"}{if (tolower($0) ~ "$" ) print $0 }'

似乎不起作用。

示例输入如下:

✅  Team collaboration  ✅  Project organisation✅  SSO support✅  API Access✅  Priority Support 

您需要使用带有替换操作符(|)的正则表达式,因为您想要分割的字符由三个独立的UTF8代码单元组成:E2,9C85

可以使用

awk 'BEGIN{RS="[:.!]|xE2x9Cx85"} tolower($0) ~ "$"'

查看在线演示:

#!/bin/bash
s='✅ Team collaboration ✅ Project organisation✅ SSO support✅ API Access✅ Priority Support'
awk 'BEGIN{RS="[:.!]|xE2x9Cx85"} tolower($0) ~ "$"' <<< "$s"

输出:


Team collaboration 
Project organisation
SSO support
API Access
Priority Support

注意print $0是默认操作,不需要显式使用。

相关内容

  • 没有找到相关文章

最新更新