在文本文件目录 Python 或 Bash 中查找二进制文件
Find Binary in a dir of text files Python or Bash
我有一系列全是文本的日志文件。
如果发生特定错误,则会导致在文本中插入二进制文件。
我想要一个 Python 或 Bash 脚本,它将:
- 浏览目录中的文本文件(日志)
- 显示包含二进制文件的行
- 给我它出现的行号和文件名
以下是 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()
我有一系列全是文本的日志文件。
如果发生特定错误,则会导致在文本中插入二进制文件。
我想要一个 Python 或 Bash 脚本,它将:
- 浏览目录中的文本文件(日志)
- 显示包含二进制文件的行
- 给我它出现的行号和文件名
以下是 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()