Csv 终端中的sed命令出错

Csv 终端中的sed命令出错,csv,sed,terminal,command,syntax-error,Csv,Sed,Terminal,Command,Syntax Error,我进入终端,输入以下命令: sed 's/X(Y)Z/A/g' filename.csv > newfile.csv 试图用替换X(Y)Z。我认为Y的括号可能会使事情复杂化 这是我得到的错误:RE错误:非法字节序列 请让我知道我能做什么 我怀疑问题在于您的文件filename.csv包含非ASCII(可能是Unicode)字符,而您的sed需要ASCII字符 要做的第一件事是检查文件,看看是否是这样。我认为你可以通过以下方式做到这一点: cat -vet filename.csv 您可

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

sed 's/X(Y)Z/A/g' filename.csv > newfile.csv
试图用替换
X(Y)Z
。我认为Y的括号可能会使事情复杂化

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


请让我知道我能做什么

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

要做的第一件事是检查文件,看看是否是这样。我认为你可以通过以下方式做到这一点:

cat -vet filename.csv
您可能会看到高亮显示的非ASCII字符。或者,您可以使用
iconv
尝试将其转换为ASCII,并查看是否因为其中包含非ASCII字符而出现错误

如果其中包含非ASCII字符(如重音和非英语字符,有时还包含微笑、撇号和引号),则需要告诉sed它们在那里,或者如果不需要它们,则删除不满意的字符

要查看sed的预期内容,您需要运行
locale
,并通过单击其下方的
edit
将输出粘贴到原始问题中。然后您可能需要更改您的区域设置,以使
sed
更喜欢Unicode,就像我在评论中建议的那样


希望有帮助

你的命令,如前所述,对我来说很好。你需要添加关于你正在使用的shell、你正在使用的系统类型等的信息。你的命令在两个不同的系统上对我有效。嘿,我正在使用bash,我在Mac Pro 2015上。谢谢对不起,我对编码很陌生!sed:RE错误:非法字节序列