如何在UNIX中替换空字符?

时间:2019-04-25 16:30:18

标签: linux shell cat

我有这个字符串并显示特殊字符,然后替换

0|A0140017511|1|DEMÁS TEMAS|�|�|2014-08-01

我想要这个

 0|A0140017511|1|DEMÁS TEMAS|@|@|2014-08-01

$ xxd -p file.txt

307c41303134303031373531317c317c44454dc381532054454d41537c00
7c007c323031342d30382d3031

1 个答案:

答案 0 :(得分:1)

xxd的输出中可以看出,您正在尝试将NUL替换为其他内容。要将它们替换为单个字符,例如-,请使用tr

$ tr '\0' '-' < file
0|A0140017511|1|DEMÁS TEMAS|-|-|2014-08-01

或者,如果您具有GNU sed,则也可以使用字符串:

$ sed 's/\x0/^@/g' file
0|A0140017511|1|DEMÁS TEMAS|^@|^@|2014-08-01