누구나 grub2의 grub.cfg 파일에 대한 파이썬 파서를 알고 있습니까?python grub.cfg 파서가 있습니까?
기기 파티션 (루트)별로 "메뉴 항목"을 가져 오려고합니다.
hd0,msdos1: ['Ubuntu, with Linux 3.0.0-15-generic',
'Ubuntu, with Linux 3.0.0-15-generic (recovery mode)',
'Ubuntu, with Linux 3.0.0-14-generic']
hd2,msdos1: ["Windows 7 (on /dev/sdc1)"]
등
해결책 :
re.findall("menuentry ['\"](.*?)['\"].*?set root='(.*?)'", x, re.S)
[('리눅스 우분투 3.0.0-15 제네릭', '(HD0, msdos1)') ('Ubuntu, 리눅스 3.0.0-14- 일반 (복구 모드)', (리눅스 3.0.0-14- 일반 ','(hd0, msdos1)로 'Ubuntu, 리눅스 3.0.0-15와 함께 -'(hd0, msdos1) '),'우분투,리눅스 3.0.0-14- 일반 (복구 모드) ','(hd0, msdos1) '), (Ubuntu, Linux 3.0.0-13- 일반, '(hd0, msdos1)'), 'Ubuntu,리눅스 3.0.0-13- 일반 (복구 모드)', '(hd0, msdos1) '), (Ubuntu, Linux 3.0.0-12- 일반', '(hd0, msdos1)'), 'Ubuntu,Linux 3.0.0-12- 일반 (복구 모드)', (hd0, msdos1) '), ('메모리 테스트 (memtest86 +) ','(hd0, msdos1) '), ('메모리 테스트 (memtest86 +, 시리얼 콘솔 115200) ', ('는/dev/sdc1에서의 Windows 7 ()', '(HD2, msdos1)')]
오, 당신은 사람들이 당신을 위해 모든 일을하기를 원합니다. 그냥 파서를 만드십시오, 당신은 많은 즐거움을 가질 것입니다! –
아니요, 제가 있는지 묻는 중입니다. 어쨌든, regex와 re.S (DOTALL)를 사용하여 대안을 찾았습니다. –