如何在 Bash 中去掉某些十六进制字符?

如何在 Bash 中去掉某些十六进制字符?

我收集了一个单词列表供人们在推特上关注。然而,有一个问题。当我 cat 并执行 xxd 时,会发现额外的隐藏字符。即 1b5b 6d1b 5b4b 。我需要去掉这些角色。可以说 007_sharky 是名字,当我发现它时我得到了 00000000: 3030 375f 7368 6172 6b79 1b5b 6d1b 5b4b 007_sharky.[m.[K 00000010: 0a

但我需要得到

00000000: 3030 375f 7368 6172 6b79 0a 007_sharky.

它不仅仅适用于多行的一行,所以我可以这样做

cat file | while read line; do
something 
done

我错过了某些部分,我怎样才能删除这些字符。另外,在使用 cut awk 和 grep 格式化后,我再次错误地删除了文件,我得到了这个。另外,第一张图片是新的,第二张图片是旧的。完毕bash xxd 图像

https://gist.github.com/machinexa2/293823309ad804866b32b59eda17526d

答案1

看起来每行开头正好有 6 个额外字节。所以你可以使用这个:

cut -b 7- temp > result

相关内容