linux 셸 노트 sed

6313 단어 Linux
이 편 은 sed 의 기본 용법 을 기록 합 니 다. sed 와 awk 3 판 에 소 개 된 상세 한 것 을 보 세 요. sed 는 정규 표현 식 을 통 해 명령 처리 텍스트 와 일치 합 니 다. 정규 에 익숙 하지 않 으 면 골 치 아 픈 일 입 니 다.아래 스 크 립 트 는 스 크 립 트 파일 에서 테스트 하 는 사용 명령 sed - f scrift files 입 니 다.
      1. sed 는 한 줄 에서 모드 공간 으로 읽 고, 가 져 오기 전에 이전 모드 공간 내용 (다 중 모드 에서 명령 N 읽 기 제외) 을 지 웁 니 다. 스 크 립 트 는 스 크 립 트 상단 부터 모드 공간의 내용 을 처리 하고, 명령 업데이트 모드 공간 내용 을 처리 합 니 다. 새로운 명령 은 업 데 이 트 된 모드 공간 에서 진 행 됩 니 다.스 크 립 트 아래쪽 에 도착 하면 기본적으로 화면 으로 보 내 도 됩 니 다. - n 을 사용 하여 이 기본 출력 을 금지 할 수 있 습 니 다. sed 는 원본 파일 의 내용 을 수정 하지 않 습 니 다.
      2. sed 명령 은 0 개의 1 개 또는 2 개의 주 소 를 지정 할 수 있 습 니 다. 각 주 소 는 설명 모드, 줄 번호 또는 줄 주소 지정 기호의 정규 표현 식 입 니 다.
      3. sed 명령 형식 sed [options] 'command' 파일;  sed [options] -f scriptfile files
              3.1   추가
      a\                 。
      i\                ,             。
      c\           , 1~3   123456789
              1,3c\123456789

              $a\end of file          
              $i\end of file          
              $c\end of file         
               ,sed awk    aic          ,         ,    aic              , 
      1{
         c\1234
         =
         =
         p
         p
         p
      }
              1234,            ,            ,           。

           
           3.2  바꾸다  [address]s/pattern/replacement/flags   정규 표현 식 pattern 을 replacement 으로 대체 합 니 다.flag 는 표시 할 수 있 습 니 다. 
     n  1~512     ,      n    pattern
     g      ,  g         pattern
     p      
     W  file      
                    ,              /,                s/444/111/,     s244421112,    
   2,             。                       。

      pattern       \( \)   ,     repalcement    
(n ) pattern , & pattern ,     google o , e。 s/\/&e/g,\ ,&e e。    google o g, o ? ,s/\/g\1gle/g, pattern \( \) , replacement \1。

 3.3 줄 d 삭제, 예 를 들 어 1, 3 줄 1, 3d 삭제
 3.4 리스트 l   인쇄 할 수 없 는 문자 목록 을 보 여 줍 니 다. 인쇄 할 수 없 는 문 자 를 두 개의 숫자 로 표시 하 는 ascii 코드 입 니 다. 예 를 들 어 \ t...
 3.5 변환  [address]y/abc/xyz/
      이 명령 은 문자열 abc 의 모든 문 자 를 xyz 에 대응 하 는 문자 로 위치 에 따라 변환 합 니 다.          대소 문자 변환 시 y / abcdeghijklmnopqrstuvwxyz / ABCDEFGHIJKLMNOPQRSTuvWXYZ /
 3.6 인쇄  p
 3.7 줄 번호 인쇄 =
              3.8 다음 줄 n 을 읽 고 재 처리 가 아 닌 다음 명령 으로 처리 합 니 다. 다음 줄 111 의 줄 을 찾 은 후 다음 줄 이 빈 줄 이면 다음 줄 을 삭제 합 니 다.
    /111/{
            s/111/222/;
            n;
            /^$/d;
         }
       ,next                    ,               。

           3.9 파일 읽 기
   r file               
   w file                 ,               ,         。

          3.10 탈퇴 q   sed 종료         
      111      sed /111/q file

         3.11 ! 뒤의 명령 이 선택 되 지 않 은 모든 줄 에 작용 한 다 는 것 을 나타 낸다.         3.12 = 현재 줄 인쇄                             3.13 \ # 주석 줄
고급 명령, sed 는 보통 모드 공간 까지 한 줄 씩 읽 고 스 크 립 트 의 명령 을 하나씩 실행 합 니 다. 스 크 립 트 가 끝 날 때 이 줄 을 출력 하고 모드 공간 을 비우 고 다음 줄 을 읽 습 니 다. 이렇게 순환 합 니 다. sed 의 다 중 모드 명령 은 한 번 에 여러 줄 을 읽 고 일치 하 는 처 리 를 할 수 있 습 니 다. 예 를 들 어 줄 을 뛰 어 넘 는 어 구 를 처리 할 수 있 습 니 다.
           3.14 다 중 모드 공간 N D P  단일 줄 모드 에 대응 하 는 n d p
   
    P           ,p          。P     N   D  。

    D           ,          ,        ,     ,d          ,             

    N                  ,         

,^ $ 。 hello sed , 。 ex1: hello sed hello sed /hello$/{ N; s/hello
sed/hello sed/ } ex2: /^ *$/{ N; /^ *
$/D; }     D d, , 1 , d , D , , , 。

           3.15 유지 공간 을 사용 하여 모드 공간 내용 을 저장 하고 H. G. g. x 를 사용 하여 공간 을 유지 하 는 내용
                 ,        ,     ,               ,

    hold  h/H            /       
    get   g/G            /       
    x                        

    h               ,          。
    H               ,         ,        。
    g            ,             。
    G            ,             。

       3.16 분기 와 조건 명령 사용: b t T
   (b)   (T/t)                   。                。
    
      b         [address] b [label] label  ,  label       。
      t          [address] t [label] label  ,  label       。                   ,  test      
                           
      (T) (t)            [address] t [label] label  ,                  ,  test        
    
    T   t    s///       

              :  ,  b label     ,

    b          ,       ,           ,                     
/^ *$/{
:rdn
   N;
   /^\( *
*\)\{1,\}$/b rdn; s/^\( *
*\)\{1,\}
/
/ } t , , , , , /^ *$/{ :loop N; s/^\( *
*\)\{1,\}$//; t loop }

           4.[options]
     4.1 -e command, --expression=command          。
     4.2 -h, --help             ,   bug     。
     4.3 -n, --quiet, --silent        。
     4.4 -f, --filer=script-file    sed     。
     4.5 -V, --version             。

        5. 메타 문자 집합
     ^             1111    ,/^1111/
     $             aaaa    ,/aaaa$/
     .               
     *          
     []                [123]k  1k 2k 3k
     [^]              
     \(..\)         , s/\(love\)able/\1rs,loveable    lovers。
     &                , s/love/**&**/,love  **love**。
     \<        , :/\        , /love\>/     love       。
     x\{m\}      x,m , :/0\{5\}/    5 o  。
     x\{m,\}     x,  m , :/o\{5,\}/     5 o  。
     x\{m,n\}    x,  m ,   n , :/o\{5,10\}/  5--10 o  。
     \+       
     \? 0  1 
     \| `REGEXP1\|REGEXP2'  Matches either REGEXP1 or REGEXP2.      111 222  /111\|222/d



        6. 그룹 구성 명령
    sed                   ,           ,    3~8      444   sed        
3,8{
  /444/{
    s/444/333/
        
  }
}
       s/444/333/         ,                   ,          ,      sed      ,    
  ;      , a,             。  sed            ,          ,         ,      
      ,       sed  GNU sed    4.2.1       。

좋은 웹페이지 즐겨찾기