Как найти символ по коду Unicode?
Например, попробуйте найти пробел ('\ u20' или '\ u0020') во второй строке:
echo -e "u20\n \nfoo" |grep "\u20"
- найден литерал u20
, а не пробел.
echo -e "x20\n \nfoo" |grep -P "\x20"
- работа. Но не подходит для меня, потому что -P
не работает с '\ u'.
Это обходное решение решает Вашу проблему? В ударе:
$ export myvar='\u20'
$ echo $myvar
\u20
$ echo -e "u20\n \nfoo" | grep -P `sed 's/\\u/\\x/' <<<$myvar`
$ echo $myvar
\u20
sed инструкция заменяет \u с \x $myvar, не изменяя значение самой переменной среды.
Решение: grep "$(printf %b '\u20')"
Как: echo -e "u20\n \nfoo" | grep "$(printf %b '\u20')"