正则表达式:商标符号为何与 az 匹配?

正则表达式:商标符号为何与 az 匹配?

抱歉,如果这是一个重复或基本的问题,但很难搜索™。我正在编写一个脚本来删除文件名中的奇怪字符。

商标符号怎么匹配[^a-z]?​​??

$ echo "AMD Ryzen™ 5 2600X Processor rstuv" |sed 's/[^A-Z]//g'
AMDRXP

$ echo "AMD Ryzen™ 5 2600X Processor rstuv" |sed 's/[^a-z]//g'
yzen™rocessorrstuv

$ echo "AMD Ryzen™ 5 2600X Processor rstuv" |sed 's/[^s-t]//g'
ssst

$ echo "AMD Ryzen™ 5 2600X Processor rstuv" |sed 's/[^t-u]//g'
™tu

似乎在t和之间u

编辑:系统规格:

$ locale
LANG=en_CA.UTF-8
LANGUAGE=en_CA:en
LC_CTYPE="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_TIME=en_CA.UTF-8
LC_COLLATE="en_CA.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_MESSAGES="en_CA.UTF-8"
LC_PAPER="en_CA.UTF-8"
LC_NAME="en_CA.UTF-8"
LC_ADDRESS="en_CA.UTF-8"
LC_TELEPHONE="en_CA.UTF-8"
LC_MEASUREMENT="en_CA.UTF-8"
LC_IDENTIFICATION="en_CA.UTF-8"
LC_ALL=

$ lsb_release -sdc; uname -sri
Ubuntu 20.04.6 LTS
focal
Linux 5.4.0-172-generic x86_64

$ sed --version
sed (GNU sed) 4.7

答案1

这里是 Ubuntu 22.04 和en_GB.UTF-8区域设置:

$ print -l {{s..u},{S..U}}{l..n} ™ 

相关内容