我进入终端,我输入了这个命令:
sed 's/X(Y)Z/A/g' filename.csv > newfile.csv
尝试将X(Y)Z
替换为。我认为Y周围的括号可能会使事情复杂化。
这是我得到的错误:RE错误:非法字节序列。
请让我知道我能做些什么。
答案 0 :(得分:0)
我怀疑问题是您的文件filename.csv
包含非ASCII(可能是Unicode)字符,而您的sed
期望ASCII。
要做的第一件事是检查文件,看看是否是这种情况。我认为你可以这样做:
cat -vet filename.csv
您可能会看到非ASCII的突出显示的字符。或者,您可以使用iconv
尝试将其转换为ASCII并查看是否出现错误,因为其中存在非ASCII字符。
如果那里有非ASCII字符(如重音符和非英语字符,有时还有表情符号,撇号和引号),您需要告诉sed
它们在那里,或者删除字符。
要查看sed
期待的内容,您需要运行locale
并将输出粘贴到原始问题中,方法是点击其下方的edit
。然后,您可能需要更改您的语言环境,以使sed
更喜欢Unicode,就像我在评论中建议的那样。
希望有所帮助!