我正在寻找一种可靠的方法来替换文本文件中的一系列字符。我知道该文件将始终遵循特定格式,并且我需要替换特定范围的字符(即从字符20开始,用'#'替换接下来的11个字符)
我找到了几个使用sed和awk的例子,它们可以在大多数文件中实现这一点。但是,在我的情况下,挂起的是文件中的字符范围包含随机乱码字符包括几个NULL字符。这会导致文件命令停止处理。
我知道最简单的修复方法是转到创建文件的进程,而不是使用NULL字符填充文件。但是,该文件是由埋在大型机上运行的古代COBOL中的进程生成的,其中的任何更改几乎都需要一次会议。
所以,知道我被我所拥有的东西困住了,有没有办法从命令行操作文件,可以成功覆盖NULL字符?
提前致谢。
答案 0 :(得分:4)
GNU dd可以做到这一点
echo '###########'|dd of=FILENAME seek=20 bs=1 count=11 conv=notrunc
确保echo命令提供足够的字符作为输入。