在文本文件目录 Python 或 Bash 中查找二进制文件

Find Binary in a dir of text files Python or Bash

我有一系列全是文本的日志文件。

如果发生特定错误,则会导致在文本中插入二进制文件。

我想要一个 Python 或 Bash 脚本,它将:

  1. 浏览目录中的文本文件(日志)
  2. 显示包含二进制文件的行
  3. 给我它出现的行号和文件名

以下是 Python 中对我有用的内容。

import os
import sys

def main():

  if len(sys.argv) < 2:
    print('Usage: python3 hasbinary.py <DIR>')
    return -1

  DIR = sys.argv[1]

  for file in os.listdir(DIR):
    msgs = []
    if file.endswith('.log'):
      print(f'Reading file {file}.')
      with open(DIR + '/' + file, 'rb') as f:
        msgs = msgs + f.readlines()
      for msg in msgs:
        try:
          msg.decode()
        except:
          print(f'Contains binary data: {msg}')

if __name__ == '__main__':
  main()