2016-07-14 86 views
-1

sed命令我去到终端,我把这个命令:错误在终端

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

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

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

请让我知道我能做些什么。

+0

你写的命令对我来说工作得很好。 – John1024

+0

你需要添加关于你正在使用的shell的信息,你正在使用什么类型的系统等等。你的命令适用于几个不同的系统。 – Feneric

+0

嘿,我使用bash,并在Mac Pro 2015上。谢谢! – HSB

回答

0

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

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

cat -vet filename.csv 

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

如果有非ASCII在那里字符(比如重音和非英文字符,有的时候表情符号,撇号和引号),您可能需要告诉sed它们的存在,或者如果删除不高兴字符你并不需要它们。

要查看sed的期望值,您需要运行locale并通过单击其下面的edit将输出粘贴到原始问题中。然后,您可能需要更改您的区域设置,以使sed像Unicode中所建议的那样对Unicode更高兴。

希望有帮助!