如何去除图 1 中显示为蓝色的特殊字符,如:^M、^A、^@、^[。据我了解,^M 是 windows 换行符,我可以使用 sed -i '/^M//g'
删除它,但删除其他行不起作用。命令 dos2unix
也不起作用。有什么方法可以用来删除它们吗?
原文由 vinllen 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何去除图 1 中显示为蓝色的特殊字符,如:^M、^A、^@、^[。据我了解,^M 是 windows 换行符,我可以使用 sed -i '/^M//g'
删除它,但删除其他行不起作用。命令 dos2unix
也不起作用。有什么方法可以用来删除它们吗?
原文由 vinllen 发布,翻译遵循 CC BY-SA 4.0 许可协议
为确保该命令在 Sed 中的有限范围内工作,请强制使用 “C”(POSIX)字符分类 以避免非 ASCII 字符出现不可预知的行为:
LC_ALL=C sed 's/[^[:blank:][:print:]]//g' file.txt
原文由 NeronLeVelu 发布,翻译遵循 CC BY-SA 3.0 许可协议
6 回答2.7k 阅读
2 回答1.9k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.6k 阅读
4 回答2k 阅读
2 回答1.4k 阅读✓ 已解决
删除除可打印字符(字符类
[:print:]
)之外的所有内容,使用sed
:[:print:]
包括:[:alnum:]
(字母数字)[:punct:]
(标点符号)The ANSI C quoting (
$''
) is used for interpreting\t
as literal tab inside$''
(inbash
and alike).