在文件(menuok.csv)中,我有一行包含撇号。我需要删除它和一些单词。我有其他撇号线,但我不想删除它们。我使用以下代码,但它没有帮助
我需要更改Cloïses,Rap i menta de l'hort-Ripoll Ripoll
sed -i s/"Cloïses, Rap i menta de l'hort-Ripoll/Ripoll"/g menuok.csv > menu.csv
文件menuok.csv的编码是charset = iso-8859-1 在现场,如果我检查,我得到
[enric@localhost ~]$ locale
LANG=en_US.UTF-8
menuok.csv和locale之间的这种不同编码是否是这个问题的根源?
答案 0 :(得分:0)
您正在使用-i
来更改输入文件。由于使用此选项没有输出,因此您不会向menu.csv
检查menuok.csv
,它应该在那里发生了变化。
如果没有,我怀疑正则表达式有问题。它很长,并且包含一些特殊字符。
答案 1 :(得分:0)
这对我有用:
sed -e "s/Cloïses, Rap i menta de l'hort-Ripoll/Ripoll/g" menuok.csv > menu.csv
答案 2 :(得分:0)
这是menuok.csv和locale之间的不同编码的来源 这个问题?
你认为是对的。
如果您想继续使用UTF-8语言环境,则必须以不同方式指定模式中的字符ï
,e。 G。作为ISO-8859-1代码ef
sed s/"Clo\xefses, Rap i menta de l'hort-Ripoll/Ripoll"/g menuok.csv >menu.csv