在Bash中删除Unicode行分隔符

时间:2013-05-14 20:31:10

标签: bash

我有text file unicode line separator(十六进制代码2028)。

我想使用bash删除它(我看到implementations for Python,但不是这种语言)。我可以使用什么命令转换文本文件(output4.txt)以丢失unicode行分隔符?

见下面的vim: enter image description here

4 个答案:

答案 0 :(得分:4)

这个tr命令也可能有效:

tr '\xE2\x80\xA8' ' ' < inFile > outFIle

工作解决方案:感谢OP找到这个:

sed -i.old $'s/\xE2\x80\xA8/ /g' inFile

答案 1 :(得分:3)

我注意到在你的截图中,你已经在vim中打开了文件,为什么不在vim中进行替换呢?

在vim中你可以做到

:%s/(seebelow)//g

(seebelow)部分,您可以输入:

CTRL-V û 2 0 2 8 < / KBD>

答案 2 :(得分:1)

您可以使用sed:

sed 's/\x20\x28//g' <file_in.txt >file_out.txt

要覆盖原始文件:

sed -i 's/\x20\x28//g' file.txt

编辑 :(请参阅chepner的评论)您应确保拥有正确的字节,具体取决于编码,然后使用sed删除它们。你可以用例如od -t x1用于查看十六进制转储并确定编码。

答案 3 :(得分:0)

这对我有用

sed $'s/\u2028//g' file_in.txt > file_out.txt

注意:其他问题使用术语<U+2028>