【问题标题】:Error in sed command in terminal终端中的 sed 命令错误
【发布时间】:2016-11-17 23:10:56
【问题描述】:

我进入终端并输入以下命令:

sed 's/X(Y)Z/A/g' filename.csv > newfile.csv

尝试将X(Y)Z 替换为。我认为 Y 周围的括号可能会使事情复杂化。

这是我得到的错误:RE 错误:非法字节序列。

请告诉我我能做什么。

【问题讨论】:

  • 你写的命令对我来说很好。
  • 您需要添加有关您正在使用的外壳、您使用的系统类型等信息。您的命令适用于我在几个不同的系统上。
  • 嘿,我正在使用 bash,并且使用的是 Mac Pro 2015。谢谢!
  • 对不起,我对编码很陌生!
  • sed: RE 错误:非法字节序列

标签: csv sed terminal command syntax-error


【解决方案1】:

我怀疑问题在于您的文件 filename.csv 包含非 ASCII(可能是 Unicode)字符,而您的 sed 需要 ASCII。

首先要做的是检查文件,看看是否是这种情况。我认为你可以这样做:

cat -vet filename.csv

您可能会看到突出显示的非 ASCII 字符。或者,您可以使用iconv 尝试将其转换为 ASCII 并查看它是否会出错,因为其中存在非 ASCII 字符。

如果其中有非 ASCII 字符(例如重音符号和非英语字符,有时还有笑脸、撇号和引号),您要么需要告诉 sed 它们在那里,要么删除 unhappy 个字符,如果你真的不需要它们。

要查看 sed 的预期结果,您需要运行 locale 并通过单击下方的 edit 将输出粘贴到您的原始问题中。然后你可能需要改变你的语言环境,让sed 对 Unicode 更满意,就像我在 cmets 中建议的那样。

希望有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-05
    • 2015-08-02
    • 2011-05-03
    • 1970-01-01
    • 2018-02-28
    • 2020-05-27
    • 1970-01-01
    • 2015-09-25
    相关资源
    最近更新 更多