从linux命令行替换巨大文件中的特定非可打印字符

时间:2009-09-29 17:08:57

标签: regex linux command-line sed ascii

我需要尽快在一些非常庞大的文本文件中替换ascii字符SOH和STX(标题的开头和文本的开头,分别是ascii字符1和2)...是否已经开始了?该命令是什么样的?

3 个答案:

答案 0 :(得分:8)

您可以使用

tr "\001\002" "xy"

...将ascii字符1翻译为x,将2翻译为y。

答案 1 :(得分:2)

如果要用单个字符替换SOH和STX,请使用tr(假设您用X替换SOH,用Y替换STX):

tr '\001\002' 'xy' <sourcefile >destfile

答案 2 :(得分:1)

sed -e y/\x01\x02/xy/ *.txt

y//是sed的音译命令。您可以使用-i开关就地编辑文件。