零以下一行错误,如何找到对应的正数?

Error in a line below zero, how do I find the corresponding positive number?

我正在尝试处理一个非常大的 xml 文件。在某些时候,它似乎包含一些奇怪的字符,导致处理脚本失败。

我想看看给定行中的内容,但是 Python (Python 3.6.9) 说该行是负数:

xml.parsers.expat.ExpatError: not well-formed (invalid token): line -1503625011, column 60

我假设行号是负数,因为它高于最大整数值。

我怎样才能将这个负数“转换”为正数,以便我可以将它提供给 head file -n (number) | tail -n1 以隔离那条故障线路?

看起来它错误地使用了带符号的 32 位 int。 将 -1503625011 转换为 unsigned int 得到 2791342285

要'un-sign'这样的整数,见How to convert signed to unsigned integer in python

注意:这只会影响行号 >= 231 (2,147,483,647)