2012-01-24 6 views
0

는 다음과 같은 예제 파일을 감안할 때 :Python으로 파일에서 임의의 텍스트 줄을 제거 하시겠습니까?

host wallmount { 
    option root-path "iscsi:10.0.0.202::::iqn.2012-01.com.enactpc:storage.wall_mount"; 
    hardware ethernet 00:15:c5:71:b9:68; 
    } 

host netbook { 
    option root-path "iscsi:10.0.0.202::::iqn.2012-01.com.enactpc:storage.netbook"; 
    hardware ethernet 00:21:70:bb:4e:95; 
    } 

host laptop { 
    option root-path "iscsi:10.0.0.202::::iqn.2012-01.com.enactpc:storage.laptop"; 
    hardware ethernet 00:1b:38:4c:62:40; 
    } 

이 알려진 "호스트 이름을"취할 수 있을까. (예 : "월마운트")을 제거 그것은 전체 선언은 자동입니까?

P. 이것은 리눅스에서 DHCP 설정 파일입니다 ... 그게 도움이되는지 아닌지는 모르겠습니다. 뿐만 간단 할 수 나오지와 나는 그것을 할 것

+0

물론, 그것은 가능합니다. * 진짜 * 질문은 얼마나 똑똑하고 원하는지, 얼마나 간단하게 코드를 원 하느냐하는 것입니다. 예 : 중첩 된 중괄호를 처리해야합니까? 중괄호가 따옴표 붙은 문자열에있을 수 있습니까? 클로우즈 버팀대는 항상 자신의 라인을 가지고 있습니까? –

+0

미래에 중첩 된 중괄호가있을 가능성이 있지만, 지금은 "sed"예제가 작동합니다 ... – Soviero

답변

1

:

/host wallmount/,/}/ d 

이것은 완전히 모든 구문을 이해하지 않기 때문에 (완전 강력한 될 수 없습니다 그 실제 파서 당신의 config는 아마도 그렇습니다.)하지만, 여러분의 입력이 꽤 규칙적이라면 괜찮을 것입니다.

이 경우 사용자는 여기에서 위의 명령을 사용하여 장소에서 파일을 편집 할 것입니다 방법, 나오지도 모른다 :

sed -i '/host wallmount/,/}/ d' thefile.cfg 
관련 문제