You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unix Shell:如何匹配并替换/删除ASCII 128-255字符范围?

用sed移除ASCII 128-255范围单个字节字符的匹配语法

你提到的sed替换数字字符的示例命令如下:

sed "s/[0-9]/ /g" $source_file

原行:Hello1Hello2Hello3Bye
处理后:Hello Hello Hello Bye

要移除ASCII 128到255之间的单个字节字符,需根据sed版本选择对应的匹配语法:

GNU sed 写法

GNU sed支持十六进制转义符,直接用\x加十六进制值表示字符,匹配范围写法如下:

sed 's/[\x80-\xFF]//g' $source_file

其中\x80对应ASCII 128,\xFF对应ASCII 255,//g表示全局将匹配到的字符替换为空(即移除)。

POSIX标准sed 写法

对于严格遵循POSIX标准的sed(如BSD sed),不支持十六进制转义,需使用八进制转义。ASCII 128的八进制值是\200,ASCII 255的八进制值是\377,命令为:

sed 's/[\200-\377]//g' $source_file

效果验证

假设原行内容为:Hello\xA1World\xFFTest(\xA1、\xFF属于ASCII 128-255范围),处理后会得到:HelloWorldTest

内容的提问来源于stack exchange,提问作者access_granted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:07:03