bash - 从命令行将文本转换为 7 位 ASCII

标签 bash text ascii 7-bit

我在 OS X 10.5.5 上(尽管我想这并不重要)

我有一组带有奇特字符的文本文件,例如双反引号、省略号(“...”)在一个字符中等。

我需要将这些文件转换为良好的旧式纯 7 位 ASCII,最好不要丢失字符含义(即将这些省略号转换为三个句点,将反引号转换为通常的 "s 等)。

请建议一些智能命令行 (bash) 工具/脚本来执行此操作。

最佳答案

Elinks Web 浏览器会将 Unicode 实体转换为它们的 ASCII 等效项,例如“--”表示“—”,“...”表示“...”等。有一个 python 模块 python-elinks它使用相同的转换表,将它变成一个 shell 过滤器是微不足道的,如下所示:

#!/usr/bin/env python
import elinks
import sys
for line in sys.stdin:
    line = line.decode('utf-8')
    sys.stdout.write(line.encode('ASCII', 'elinks'))

关于bash - 从命令行将文本转换为 7 位 ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/212745/

相关文章:

CSS 文本格式错误

http - 如何通过 HTTP 安全地发送密码?

c++ - 如何将 "A1"样式的行+列规范作为输入?

Python Unicode 字符串替换 : u, r 或无

bash - 在 Unix/Linux 中使用命令行计算日期和时间以跟踪时间

bash - 简单的 bash 脚本按名称计算正在运行的进程

regex - 如何在bash中用另一个字符串替换可变长度的重复字符串?

macos - 在 Mac 上打开新终端窗口时如何停用 bash_history stats 打印?

python - 如何格式化 Pandas 数据框中的文本

c# - SHA512 计算哈希返回乱码