수색…


소개

Sed 명령은 주소 또는 주소 범위를 사용하여 특정 행에서만 작동하도록 지정할 수 있습니다.

특정 라인

$ cat ip.txt
address
range
substitution
pattern
sample
  • N 번째 라인

    $ sed -n '2p' ip.txt 
    range
    
    $ sed '3d' ip.txt 
    address
    range
    pattern
    sample
    
  • 마지막 줄

    $ sed -n '$p' ip.txt 
    sample
    

특정 라인 범위

$ cat ip.txt 
address
range
substitution
pattern
sample
  • 지정된 범위는 해당 줄 번호를 포함합니다.

    $ sed -n '2,4p' ip.txt 
    range
    substitution
    pattern
    
  • $ 는 마지막 행을 지정하는 데 사용될 수 있습니다. 명확성을 위해 주소와 명령 사이에 공간을 사용할 수 있습니다.

    $ sed -n '3,$ s/[aeiou]//gp' ip.txt 
    sbstttn
    pttrn
    smpl
    

GNU sed
  • i 번째 라인부터 i + j 번째 라인까지

    $ sed '2,+2d' ip.txt 
    address
    sample
    
  • i 라인 및 i + j , i + 2j , i + 3j

    $ sed -n '1~2p' ip.txt 
    address
    substitution
    sample
    

정규 표현식 패턴과 일치하는 행

$ cat ip.txt 
address
range
substitution
pattern
sample
Add Sub Mul Div
  • 패턴과 일치하는 선

    $ sed '/add/d' ip.txt 
    range
    substitution
    pattern
    sample
    Add Sub Mul Div
    
    $ sed -n '/t/p' ip.txt 
    substitution
    pattern
    
    $ sed -n '/[A-Z]/ s| |/|gp' ip.txt 
    Add/Sub/Mul/Div
    
  • 패턴 범위

    $ sed -n '/add/,/sub/p' ip.txt 
    address
    range
    substitution
    
    $ sed -n '/a/,/e/p' ip.txt 
    address
    range
    pattern
    sample
    

노트

  • 두 번째 예에서는 두 개의 범위 - 행 1,2 및 행 4,5 와 일치했습니다.
  • 패턴을 지정하려면 / 대신 다른 문자를 사용하는 방법에 대해 다른 구분 기호 사용을 참조하십시오.

GNU sed
  • 대소 문자를 구분하지 않는 일치

    $ sed -n '/add/Ip' ip.txt 
    address
    Add Sub Mul Div
    
    $ sed -n '/add/I,/sub/p' ip.txt 
    address
    range
    substitution
    Add Sub Mul Div
    

숫자와 패턴을 사용하여 범위 지정하기

$ cat ip.txt 
address
range
substitution
pattern
sample
Add Sub Mul Div
  • 줄 번호와 줄 일치 패턴

    $ sed -n '2,/pat/p' ip.txt 
    range
    substitution
    pattern
    
  • 행 일치 패턴과 행 번호 비교

    $ sed '/pat/,$d' ip.txt 
    address
    range
    substitution
    

GNU sed
  • 줄 맞춤 패턴과 그 뒤의 줄 수

    $ sed -n '/add/I,+1p' ip.txt 
    address
    range
    Add Sub Mul Div
    
  • 0 은 패턴이 입력의 첫 번째 라인과 일치 할 때 범위의 끝을 알리는 시작 라인 번호로 사용할 수 있습니다.

    $ sed -n '0,/r/p' ip.txt 
    address
    
    $ sed -n '1,/r/p' ip.txt 
    address
    range
    
    $ sed -n '0,/u/p' ip.txt 
    address
    range
    substitution
    

주소 범위 무시

$ cat ip.txt 
address
range
substitution
1234
search pattern
sample
Add Sub Mul Div
  • 지정된 주소 이외의 행 삭제

    $ sed '/[0-9]/!d' ip.txt 
    1234
     
    $ sed -n '/[0-9]/p' ip.txt 
    1234
      
    $ sed '$!d' ip.txt 
    Add Sub Mul Div
      
    $ sed -n '$p' ip.txt 
    Add Sub Mul Div
    
  • 패턴과 일치하지 않는 행을 검색하고 바꿉니다.

    $ sed '/ /! s/^/#/' ip.txt 
    #address
    #range
    #substitution
    #1234
    search pattern
    #sample
    Add Sub Mul Div
    
    $ sed '/add/,/sub/! s/[aeiou]//gi' ip.txt 
    address
    range
    substitution
    1234
    srch pttrn
    smpl
    dd Sb Ml Dv
    


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow