【问题标题】:how replace null characters in UNIX? [duplicate]如何在 UNIX 中替换空字符? [复制]
【发布时间】:2019-04-25 16:30:18
【问题描述】:

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

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 -p file.txt 的输出添加到您的问题中?所以我们可以在不丢失外来字符的情况下生成您的输入。
  • 已经添加xxd -p file.txt
  • 必须是^@吗?单个字符也可以吗,例如@
  • 这是一个关于“如何删除/替换字符串中的 NUL 字节”的 XY 问题吗?
  • @thatotherguy 重新提出问题:)

标签: linux shell cat


【解决方案1】:

xxd 的输出中,我可以看出您正在尝试用其他东西替换NULs。要将它们替换为单个字符,例如 -,请使用 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

【讨论】:

  • 谢谢,完美运行
猜你喜欢
  • 2021-07-12
  • 2013-06-08
  • 2018-08-31
  • 1970-01-01
  • 2017-04-03
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多