sed - 미리 정의된 특정 라인에서만 패턴을 사용합니다.

sed - 미리 정의된 특정 라인에서만 패턴을 사용합니다.

sed나는 그것을 사용하여 파일에서 몇 줄을 제공하고 싶습니다 . 나는 내가 알고 있는 파일의 특정 부분에서만 이 줄을 추출하고 싶습니다. 예를 들어 100줄의 파일이 있는데 10줄과 30줄에서 특정 패턴이 있는 줄을 찾고 있습니다.

현재 해결책은 두 가지 sed명령을 사용하는 것입니다. 첫 번째 명령은 내가 가지고 있는 줄 번호 사이의 모든 내용을 인쇄합니다.

sed -n "10,30p" target_file.file

두 번째는 패턴을 사용하여 이 결과를 검색합니다.

sed -n '/pattern/p'

그래서 결국 나는 이것을 가지고 있습니다 :

sed -n "10,30p" target_file.file | sed -n '/pattern/p'

두 명령에서 하나의 명령을 생성하는 방법이 있습니까?

답변1

당신은 할 수 있습니다:

$ sed -n '10,30{
  /pattern/p
}' <file

이는 현재 표준 구문입니다. 다음을 사용할 수도 있습니다.

$ sed -n '10,30{/pattern/p;}' <file

다음 POSIX 버전에서.

관련 정보