我正在从一个大的文本文件导入到数据库中的数据,并得到该文件的X行上的错误。 如果我用较less的查看器来查看行,我不会看到任何奇怪的东西,因为很可能该行具有不可打印的字符。 然后我试着sed线,用hexdump检查一下:
sed -n 2540283p 30gb_large_file.fzp | hexdump -C
再一次,没有,最有可能的,因为sed过滤掉所有不可打印的字符。
任何意见如何我可以看到在hex的大文件的特定行上发生了什么?
sed不应该“过滤掉”所有不可打印的字符 – 你不会这样做的。 实际上,对一个方便的二进制文件(FreeBSD内核)进行简单的testing表明,情况并非如此 – sed高兴地传递了不可打印的字符。
耻辱你公开指责可怜的无辜者做了一些非常错误的事情,而没有先给它一个正确的testing的好处 – 我会留下你的罪恶良心,想出适当的悔改行为!
如果sed没有给你任何输出,那是因为没有什么可以提供的 – 或者这个文件不存在(也许这个文件突然终止了 – Didjya检查wc -l ?也许有一个EOF在那里不应该是你的程序在看到它时正在中止)。
也有可能这个行只包含一个换行符或一个NUL字符(该sed应该尽职尽责,但是这对于hexdump来说不会有太大用处)。