我正在使用Mac El Capitan的bash shell。如何在一系列文件中扫描部分8字节字符?构建一个读取
的项目时出错Incorrect string value: '\xF3\x95\x90\x8D\xEA\x93...' for column 'CODE' at row 1
我想知道这个字符串值在哪里发挥作用。不幸的是,错误并没有给我更多信息,但我知道所有潜在文件的目录。
答案 0 :(得分:0)
我故意在当前目录中损坏了我的一个shell文件,使用十六进制编辑器插入0xf3
字符。
我写过这个(笨拙)脚本,它使用od
(八进制转储),以十六进制模式char-by-char,带有十六进制偏移量,greps用于当前臭名昭着的f3
字符目录以及下面的所有目录中,过滤文件和名称(因此您可以删除名称,过滤它仍然有效)
find . -type f -name "*.sh" | while read f
do
line=$(od -Ax -t x1 $f | grep -w f3)
if [ $? = 0 ] ; then
echo file $f is corrupt: $line
fi
done
结果在我的目录中:
file ./quote.sh is corrupt: 000010 69 6d 61 6c f3 3d 24 28 6d 79 73 71 6c 20 2d 75