如何通过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')"