링크 ux sed 스 트림 편집기 예제 설명

4033 단어 linuxshell
본문 구조
  • sed 소개
  • sed 명령 형식
  • sed 옵션
  • sed 용법 예시
  • 1. sed 가 뭐 예요?
    sed 편집 기 는 스 트림 편집기 (stream editor) 라 고 불 리 며 일반 대화 형 텍스트 편집기 와 정반 대 입 니 다. 텍스트 변환 을 걸 러 내 고 진행 합 니 다.스 트림 편집 기 는 데 이 터 를 편집 하기 전에 미리 제 공 된 규칙 에 따라 데이터 스 트림 을 편집 합 니 다.
    sed 원리: sed 는 텍스트 의 행위 단위 로 처리 하고 한 줄 의 내용 을 처리 합 니 다.먼저 sed 는 현재 처 리 된 줄 을 임시 버퍼 에 저장 합 니 다 (모드 공간 pattern space 라 고 함). 이 어 버퍼 의 줄 을 처리 하고 처리 가 완료 되면 버퍼 의 내용 을 화면 으로 보 냅 니 다.sed 한 줄 을 처리 하고 임시 버퍼 에서 삭제 한 다음 다음 줄 을 읽 고 처리 하고 표시 합 니 다. 파일 이 끝 날 때 까지 반복 합 니 다.파일 의 마지막 줄 을 처리 한 후 sed 는 실행 을 끝 냅 니 다.
    sed 는 파일 의 줄 마다 임시 버퍼 에 있 는 복사 본 을 편집 하기 때문에 원래 파일 의 내용 은 변경 되 지 않 았 습 니 다. 출력 을 바 꾸 지 않 는 한.
    명령 형식
    sed [OPTION]... {script-only-if-no-other-script} [input-file]...
    #sed [  ]... {  } [  ]...
    

    sed 매개 변수 해석
       -e script, --expression=script
                          
    
       -f script-file, --file=script-file
                               
    
       --follow-symlinks
                        
    
       -i[SUFFIX], --in-place[=SUFFIX]
                        (            )
    
       -c, --copy
                 -i                    
    
    
       -l N, --line-length=N
               l              
    
       --posix
                  GUN  
    
       -r, --regexp-extended
                            
    
       -s, --separate
                                   
    
       -u, --unbuffered
                             ,        
    
       -z, --null-data
               NUL     
    

    4. sed 용법 예시:
    1. 부분 내용 교체
    [root@foundation36 ~]# echo halo the wooo | sed 's/woo/world ya/'
    halo the world yao
    [root@foundation36 ~]# 
    

    2. sed 여러 명령 실행, 인자 - e
    hello the word
    [root@foundation36 ~]# sed -e 's/halo/hello/; s/word/world ya/' time.txt
    hello the world ya
    

    3. 여러 명령 을 스 크 립 트 에 기록 하고 파일 을 호출 합 니 다. 파일 이름 이 sedcom 이 라 고 가정 합 니 다.
    sed -f sedcom file
    -n   p                   :
    sed -n 's/test/TEST/p' file
    sed -i 's/book/books/g' file
    

    4. 전역 바 꾸 기 접미사/g 표 시 를 사용 하면 줄 마다 일치 하 는 모든 것 을 바 꿉 니 다: sed 's/book/books/g' file
    echo sksksksksksk | sed 's/sk/SK/2g' 
    skSKSKSKSKSK 
    
    echo sksksksksksk | sed 's/sk/SK/3g'
    skskSKSKSKSK
    
    echo sksksksksksk | sed 's/sk/SK/4g'
    skskskSKSKSK
    

    5. 경계 부 이상 명령 에서 문자/sed 에서 경계 부 로 사용 할 수도 있 고 임의의 경계 부 호 를 사용 할 수도 있 습 니 다.
     sed 's:test:TEXT:g' sed 's|test|TEXT|g' 
    

    경계 문자 가 스타일 내부 에 나타 날 때 전의 가 필요 합 니 다:
    sed 's/\/bin/\/usr\/local\/bin/g'
    

    6. 삭제 작업: d 명령
             :
        sed '/^$/d' file
              2 : sed '2d' file
              2       : sed '2,$d' file
                : sed '$d' file
                  test  : sed '/^test/'d file
    

    7. 여러 표현 식 sed '표현 식' 을 조합 합 니 다. | sed '표현 식' 은 다음 과 같 습 니 다. sed '표현 식;표현 식
    8. 선택 한 줄 의 범위:, (쉼표)
         test check             :
    sed -n '/test/,/check/p' file
        5          test          
    sed -n '5,/^test/p' file
        test west    ,         aaa bbb  : 
    sed '/test/,/west/s/$/aaa bbb/' file
    

    9. 다 중 편집: e 명령
    -e               :
    sed -e '1,5d' -e 's/test/check/' file
    
      sed           1 5 ,      check  test。             。            ,                      。
      -e        --expression:
    sed --expression='s/test/check/' --expression='/love/d' file
    

    10. 변형 y 명령 은 1 ~ 10 줄 의 모든 abcde 를 대문자 로 바 꿉 니 다. 정규 표현 식 메타 문 자 는 이 명령 을 사용 할 수 없습니다.
    sed '1,10y/abcde/ABCDE/' file
    

    11. 홀수 줄 또는 짝수 줄 인쇄 방법 1
     sed -n 'p;n' test.txt #   
     sed -n 'n;p' test.txt #   
    

    방법 2:
     sed -n '1~2p' test.txt #   
     sed -n '2~2p' test.txt #    
    

    12. 일치 하 는 문자열 의 다음 줄 인쇄
    grep -A 1 SCC URFILE
    sed -n '/SCC/{n;p}' URFILE 
    awk '/SCC/{getline; print}' URFILE
    

    좋은 웹페이지 즐겨찾기