btf/btfhive/lab/stripHead.py (31 lines of code) (raw):

# -*- coding: utf-8 -*- # cython:language_level=3 """ ------------------------------------------------- File Name: stripHead Description : Author : liaozhaoyan date: 2022/1/18 ------------------------------------------------- Change Activity: 2022/1/18: ------------------------------------------------- """ __author__ = 'liaozhaoyan' import re reStrip = re.compile("___[\d]+") def transLines(lines): if lines[0].startswith("struct"): res = reStrip.search(lines[0]) if res is not None: return "" nlines = [reStrip.sub("", lines[0])] for i, line in enumerate(lines[1:]): if line != "\n": nlines.append(reStrip.sub("", line)) if len(nlines) == 1 and nlines[0] == "\n": return "" return "".join(nlines) def stripHead(path): content = "" with open(path, 'r') as f: lines = [] brackets = 0 for i, line in enumerate(f): brackets += line.count("{") brackets -= line.count("}") lines.append(line) if brackets == 0: content += transLines(lines) lines = [] with open("new.h", 'w') as f: f.write(content) if __name__ == "__main__": stripHead("vmlinux-3.10.0-327.ali2019.alios7.x86_64.h")