在 bash 中删除文件中的撇号

  • 本文关键字:删除 bash 文件 bash
  • 更新时间 :
  • 英文 :


在一个文件(menuok.csv)中,我有一行包含一个撇号。我需要删除它和一些单词。我还有其他带有撇号的行,但我不想删除它们。我正在使用以下代码,但它没有帮助

我需要改变 Cloïses, Rap i menta de l'hort-Ripoll for 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 之间的这种不同编码是此问题的根源吗?

您正在使用更改输入文件的-i。由于使用此选项没有输出,因此您无需写入任何内容menu.csv

检查menuok.csv,它应该在那里更改。

如果没有,我怀疑正则表达式有问题。它很长,包含一些特殊字符。

这对

我有用:

sed -e "s/Cloïses, Rap i menta de l'hort-Ripoll/Ripoll/g" menuok.csv > menu.csv

menuok 和 locale 之间的这种不同编码.csv 这个问题?

你猜对了。
如果要保留 UTF-8 语言环境,则必须以不同的方式指定模式中的字符ï,例如作为 ISO-8859-1 代码ef

sed s/"Cloxefses, Rap i menta de l'hort-Ripoll/Ripoll"/g menuok.csv >menu.csv

相关内容

  • 没有找到相关文章

最新更新