通过 grep 根据代码查找 unicode

通过 grep 根据代码查找 unicode

如何通过Unicode代码查找符号?

例如尝试在第二行找到一个空格('\u20' 或 '\u0020'):

echo -e "u20\n \nfoo" |grep "\u20"- 找到了文字u20,而不是空格线。

echo -e "x20\n \nfoo" |grep -P "\x20"- 可以工作。但不适合我,因为-P不能使用 '\u'。

答案1

这个解决方法能解决你的问题吗?在 bash 中:

$ export myvar='\u20'
$ echo $myvar
\u20
$ echo -e "u20\n \nfoo" | grep -P `sed 's/\\u/\\x/' <<<$myvar`

$ echo $myvar
\u20

sed 指令将 $myvar 的 \u 替换为 \x,而不改变环境变量本身的值。

答案2

解决方法:grep "$(printf %b '\u20')"

喜欢:echo -e "u20\n \nfoo" | grep "$(printf %b '\u20')"

相关内容