Bash 删除Unicode行分隔符“;U+;2028年“;在狂欢节上

Bash 删除Unicode行分隔符“;U+;2028年“;在狂欢节上,bash,Bash,我有一个带a的(十六进制代码2028) 我想使用bash删除它(我明白了,但不是针对这种语言)。我可以使用什么命令来转换文本文件(output4.txt)以丢失unicode行分隔符 请参见下面的vim: 您可能可以使用sed: sed 's/\x20\x28//g' <file_in.txt >file_out.txt 编辑:(请参阅切普纳的评论)根据编码,您应该确保拥有正确的字节,然后使用sed删除它们。您可以使用例如od-t x1查看十六进制转储并找出编码。我注意到在您的屏幕

我有一个带a的(十六进制代码2028)

我想使用bash删除它(我明白了,但不是针对这种语言)。我可以使用什么命令来转换文本文件(output4.txt)以丢失unicode行分隔符

请参见下面的vim:

您可能可以使用sed:

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

编辑:(请参阅切普纳的评论)根据编码,您应该确保拥有正确的字节,然后使用sed删除它们。您可以使用例如od-t x1查看十六进制转储并找出编码。

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

在vim中,你可以

:%s/(seebelow)//g
(见下文)
部分,您可以键入:


ctrl-vu2028

此tr命令可能也可以工作:

tr '\xE2\x80\xA8' ' ' < inFile > outFIle
这对我有用

sed$'s/\u2028//g'file\u in.txt>file\u out.txt

注意:其他问题使用术语

2028是Unicode码点;它在文件中的显示方式取决于编码。对于UTF-8,字节序列将是
\xE2\x80\xA8
。不幸的是,我需要将其自动化-尽管这是一个非常有用的提示!如果您有少量文件,vim也可以自动执行。(带-w和-s)。但若你们有一大堆文件,shell是正确的选择。唉,它似乎并没有/你能试试看吗:
tr-d'\x20\x28'
这最后起作用了:
sed-i.old$'s/\xE2\x80\xA8//g'filename
-非常接近你的文件名。:)很高兴知道,我编辑了我的答案,以反映这一点,使本页的未来访问者将有一些有用的东西。
tr '\xE2\x80\xA8' ' ' < inFile > outFIle
sed -i.old $'s/\xE2\x80\xA8/ /g' inFile