如何在某个范围内使用 sed 删除 Unicode? [英] how to use sed delete Unicode in some range?

查看:61
本文介绍了如何在某个范围内使用 sed 删除 Unicode?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想删除某个范围内的 Unicode,例如:

I want to remove Unicode in some range, e.g.:

echo "abcABC123" |sed 's/[\uff21-\uff3b]//g'

期望 "abc123",但得到:

sed: -e 表达式 #1, char 20: 无效范围结束

sed: -e expression #1, char 20: Invalid range end

或使用:

echo "abcABC123" |sed 's/[A-Z]//g'

获取:

sed: -e expression #1, char 14: 无效的整理字符

sed: -e expression #1, char 14: Invalid collation character

推荐答案

sed 中的 Unicode 支持没有明确定义.最好使用命令行 perl:

Unicode support in sed is not well defined. You may be better off using command line perl:

echo "abcABC123" | perl -CS -pe 's/[\x{FF21}-\x{FF3B}]+//g'

abc123

在此处使用 -CS 标志很重要,以便能够为输入/输出/错误获得正确的 UTF8 编码.

It is important to use -CS flags here to be able to get correct UTF8 encodings for input/output/error.

这篇关于如何在某个范围内使用 sed 删除 Unicode?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆