2013-03-16 4 views
1

sed을 사용하여 파일의 첫 번째 일치하는 줄을 인쇄하고 싶습니다. 일치하는 행 자체 만 원하고 다른 행은 필요 없습니다. 이 마지막 일치하는 라인 aragaer’s answer에서 영감을첫 번째 일치하는 줄 인쇄

$ sed '/while/h; $!d; g' foo.sh 
while read video 

를 인쇄하는 비슷한 명령이다,이 그것을

$ sed '/while/q;d' foo.sh 
    while sleep 1 
+1

왜 단순히 그렙과 머리를 사용합니까? –

+1

왜 'grep'이 아닌가? –

+0

'grep -m1 while foo.sh' –

답변

2

당신 (GNU이 나오지도)에 대한이 작동 될 수 있습니다

sed '/while/!d;q' file 
5
sed -n '/LINE TO MATCH/{p;q}' 
  • -n을 할 것으로 보인다 것은하지 않는 한 아무 것도 인쇄되지 않음 "을 의미 고 말했다. "
  • p - print
  • q - 중지 후 나가기

일치하는 줄에서 p와 q가 모두 실행됩니다.

+0

쉘에 {p; q;}가 필요합니다. – suspectus

관련 문제