gpt4 book ai didi

linux - 使用 tr 去除字符但保留换行符

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:45 25 4
gpt4 key购买 nike

我正在尝试格式化一些从 UTF-16 转换为 ASCII 的文本,输出如下所示:

C^@H^@M^@M^@2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
T^@h^@e^@m^@e^@ ^@M^@a^@n^@a^@g^@e^@r^@ ^@f^@o^@r^@ ^@3^@D^@S^@^@^@^@^@^@^@^@^@^@^@^@^@^@

我唯一想要的文字是:

CHMM2
Theme Manager for 3DS

所以在每行的末尾和我使用的时候都有一个换行符“\n”

tr -cs 'a-zA-Z0-9' 'newtext' infile.txt > outfile.txt

它也在剥离新行,因此所有文本都在一行中以一个大字符串结束。

任何人都可以帮助弄清楚如何只删除 ^@ 并保留空格和新行吗?

最佳答案

^@ 肯定是空字符,\0s,所以:

tr -d '\0'

将摆脱它们。

但这并不是真正正确的解决方案。您应该简单地使用 iconv 命令将 UTF-16 转换为 UTF-8(有关更多信息,请参见其手册页)。当然,这就是您真正想要在这里完成的事情,这将是正确的方法。

这是一个 XY problem .您的问题不是删除空字符。您真正的问题是如何将 UTF-16 转换为 UTF-8 或 US-ASCII(我选择 UTF-8 作为保守答案)。

关于linux - 使用 tr 去除字符但保留换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35544851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com