linux - 如何在 UNIX 中替换空字符?

标签 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

最佳答案

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

关于linux - 如何在 UNIX 中替换空字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55853852/

相关文章:

unix - ##*/在 UNIX Shell 脚本中使用

bash - 如何从shell中的函数返回关联数组?

c - 这些标志是什么意思? ^@

linux - 当 Asterisk 中的通话量很高时,它会被杀死,没有任何错误消息

linux - 如何删除文件?

python - 如何编写一个用 python 调用自身的 bash 脚本?

linux - 在 Linux 中使用 "top"作为半永久检测

python - 等效于 matlab "ans"和运行 shell 命令

c - cat 命令中的 "-u"选项有什么用?

C 将选项连接到 CAT 程序?