使用grep时,有时会出现"Binary file (standard input) matches"的问题;
这是因为文件中存在非法字符导致被误认为是二进制文件;
可以通过grep -a 参数来处理这种包含非法字符的文本文件。
不过如果想找到非法字符的位置,该如何操作呢?
这里通过简单的python脚本实现:
fp = open('tester.log')
cnt = 0
line = fp.readline()
while line:
line = fp.readline().strip()
if not line.isprintable():
print("illegal line %s" % cnt)
print(line)
cnt +=1