【问题标题】:How to remove special character  character in a file in unix?如何在unix中删除文件中的特殊字符?
【发布时间】:2013-09-25 19:27:07
【问题描述】:

以下是我文件中的数据:

one_1.10=to - Standard (£1.10)
ITV_1.10=to - Standard (£1.10)

我想在我的 unix 文件中删除 Â?

我尝试了以下方法。在 vi 模式下打开文件并给出以下命令

:set nobomb
:wq

sed -i '1 s/^\xef\xbb\xbf//' <fileName>

但是 BOM 字符没有被删除。有人可以帮忙吗?

【问题讨论】:

  • sed -i 's/Â//g' file 对你有用吗?
  • 您要删除的绝对不是BOM
  • 嗨,费多基。它不工作。尽管模式存在,但它显示的模式未找到。
  • 您好 devnull。我认为它是一个 BOM 字符。无论如何我只是想删除那个字符。
  • 我找到了另一种方法来替换当前目录内所有文件中的所有非ASCII字符:find。 -类型 f | xargs perl -pi.bak -e 's,[^[:ascii:]],,g' 之后,您必须找到并删除所有 '.bak' 文件: find 。 -type f -a -name *.bak | xargs rm 但这也将 £ 替换为空字符串。有没有人知道如何使用上述命令排除 £?

标签: shell unix byte-order-mark


【解决方案1】:

试试:

cat <filename> | sed 's/\xc2//g'

您的想法是正确的,但性格错误(基于您的示例)。

【讨论】:

  • 我认为您尝试使用的文本在上面没有正确表示。当我将示例文本粘贴到我系统上的文件中时,在十六进制编辑器中查看时,'Â' 看起来像 0xC2 字符。尝试以十六进制查看您的原始文件,并将 \xc2 替换为它真正的任何字符。查看 hex:emacs 可以这样做(打开文件然后按 Esc.、x,键入 hexl-mode 并按 enter)。或者运行 'od -h '.
猜你喜欢
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多