我有一个带有unicode 行分隔符的文本文件(十六进制代码 2028)。
我想使用 bash 删除它(我看到Python 的实现,但不是这种语言的实现)。我可以使用什么命令来转换文本文件(output4.txt)以丢失 unicode 行分隔符?
请参阅下面的 vim:
我有一个带有unicode 行分隔符的文本文件(十六进制代码 2028)。
我想使用 bash 删除它(我看到Python 的实现,但不是这种语言的实现)。我可以使用什么命令来转换文本文件(output4.txt)以丢失 unicode 行分隔符?
请参阅下面的 vim:
可能这个 tr 命令也应该起作用:
tr '\xE2\x80\xA8' ' ' < inFile > outFIle
工作解决方案:感谢 OP 找到这个:
sed -i.old $'s/\xE2\x80\xA8/ /g' inFile
我注意到在您的屏幕截图中,您已经在 vim 中打开了文件,那么为什么不直接在 vim 中进行替换呢?
在 vim 你可以做
:%s/(seebelow)//g
该(seebelow)
部分,您可以键入:
ctrl-vu2028
您可能可以使用 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
查看十六进制转储并找出编码。
这对我有用
sed $'s/\u2028//g' file_in.txt > file_out.txt
注意:其他问题使用该术语<U+2028>