【问题标题】:Having trouble using sed command in MAC [duplicate]在 MAC 中使用 sed 命令时遇到问题 [重复]
【发布时间】:2021-01-13 13:00:50
【问题描述】:

我正在尝试执行以下操作:

LC_CTYPE=C sed 's/|/¦/g' t.txt > new_t.txt

代码正在运行,但是当我打开新文件时,替换会添加一个附加字符“A¦”。这是为什么呢?

【问题讨论】:

  • 取决于您键入 ¦ 字符的方式以及查看文件的方式。我猜你的命令行表示为 UTF-8,而你显然是在使用其他东西(Latin-1?)来查看文件(虽然严格来说应该给你¦,而不是)。或许也可以看看meta.stackoverflow.com/questions/379403/…
  • 关于你在我编辑之前的问题,do not use signature, taglines, or greetings
  • 这几乎可以肯定是重复的,但我找不到一个非常特定于 macOS 上的 sed 的。

标签: bash macos shell


【解决方案1】:

当你输入时

LC_CTYPE=C sed 's/|/¦/g' t.txt > new_t.txt

您的外壳可能配置为接受 命令本身为 UTF-8,因此实际上您最终将单字节 0x7C (U+007C) 转换为这两个字节 0xC2 0xA6 是U+00A6 的正确 UTF-8 编码。

然后所做的尚不清楚,但不知何故,您最终以 UTF-8 以外的其他编码检查文件,这会将两个字节作为您报告看到的字符串公开。

正确的解决方法是在支持 UTF-8 的正确配置程序中检查文件。

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 2017-10-09
    • 1970-01-01
    • 2021-09-18
    • 2021-10-22
    • 2023-03-20
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多