linux - 如何删除 Linux 文本中的所有特殊字符

标签 linux sed non-printable

vim pic 图中蓝色的特殊字符怎么去掉1喜欢:^M,^A,^@,^[。在我的理解中,^M 是一个 Windows 换行符,我可以使用 sed -i '/^M//g' 来删除它,但它不能删除其他的。命令 dos2unix 也不起作用。有什么方法可以同时删除它们吗?

最佳答案

使用sed删除除可打印字符(字符类[:print:])以外的所有内容:

sed $'s/[^[:print:]\t]//g' file.txt

[:print:] 包括:

  • [:alnum:](字母数字)
  • [:punct:](标点符号)
  • 空间

ANSI C 引号 ($'') 用于将 \t 解释为 $'' 中的文字制表符(在 bash 等)。

关于linux - 如何删除 Linux 文本中的所有特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43108359/

相关文章:

mysql - 使用带有不可打印字符定界符的 MySQL LOAD DATA INFILE

linux - 如何使用 Bash 从 Internet 将文件下载到我的 linux 服务器

linux - 如何从脚本(csh/tcsh)调用 ssh?

perl - 如何多次使用反向引用?

linux - 替换包含字符串的行,但如果是逗号则保留最后一个字符

linux - 在输出中搜索并从特定行搜索到特定行,然后再次搜索

java - 如何使用 Java 检测和替换字符串中的不可打印字符?

javascript - 检测 JavaScript 中的不可打印字符

c - 获取所有 Xorg 显示的列表

linux - SOX 的采样率误差