2012-09-06 4 views

답변

0

희망이 아닙니다. 숙제가 아닙니다. 나오지도 IMO

sed '/\[1b\]/,+1s/enabled=0/enabled=1/' <input-file> 
+0

'+ 1'주소는 비 p입니다. ortable. 나는 GNU-sed에서 유효하다고 생각한다. –

+0

ㅎ, 숙제가 아니라 sed/awk의 전문가가되고 싶다. 감사! – Vince

+0

stackflow가 '\'을 (를) 가져 왔습니다. 브라켓 문자 앞에는 백 슬래시를 붙입니다. – sureshvv

2

정말 올바른 도구가 아닙니다,하지만 당신은 할 수 있습니다 :

sed '/^\[lb\]/{ N; s/enabled=0/enabled=1/; }' input 
+0

+1 당신은 저를 때려 눕 힙니다! – Steve

+0

이것은 내가 찾고있는 것이고 완벽하게 작동하는 것입니다. 호기심에서 벗어나 더 나은 해결책이라고 생각하니? 고마워요 TON BTW – Vince

+0

awk 솔루션이 클리너 또는 펄이 될 것이라고 생각했지만, 더 많은 고려를 한 후에 sed가 잘한다고 생각합니다. –

0

한 가지 방법 GNU sed 사용 :

sed -i -r '/\[lb\]/ { N; s/(enabled=)0/\11/; }' file.txt 
0

더 일반적인 방법 awk과 :

awk 'BEGIN {RS="\\[.*\\]"; ORS=OFS="" } { gsub("enabled=0", "enabled=1"); print RT, $0 }'