【 Shell 】 sed 는 여러 모드 와 동시에 일치 합 니 다.

1964 단어 linux
이전에 [Linux] sed 명령 에서 이 글 을 가장 전면적으로 해석 하 는 데 언급 되 었 습 니 다. sed 를 사용 하여 여러 개의 일치 하 는 방법 을 실현 하지만 다 쓰 지 않 았 습 니 다. 여기 서 다시 보충 하 겠 습 니 다.
sed 명령 기능 이 매우 강해 서 보통 텍스트 와 일치 하고 편집 하 는 데 사 용 됩 니 다.
기본 적 인 상황 에서 하나의 sed 명령 은 하나의 모드 만 일치 할 수 있 습 니 다.
어떻게 sed 로 하나의 명령 에 여러 모드 를 일치 시 킵 니까?
다음 과 같은 몇 가지 방법 이 있다.
  • - f 를 통 해 스 크 립 트 파일 을 지정 하고 파일 에 여러 개의 명령 을 집합 합 니 다. 여 기 는 더 이상 군말 하지 않 습 니 다.
  • 파이프 문자 | 를 통 해 여러 개의 sed 명령 을 연결 합 니 다.
  • 하나의 sed 명령 에서 여러 개의 -e 옵션 을 사용 하여 이 루어 집 니 다.
  • sed 명령 에서 분 호 를 사용 합 니 다.여러 일치 모드 를 구분 합 니 다.

  • 다음은 다음 텍스트 내용 을 사용 하여 테스트 합 니 다.
    $ nl 1.txt 
         1  This is my cat,my cat's name is betty
         2  This is my dog,my dog's name is frank
         3  This is my fish, my fish's name is george
         4  This is my goat,my goat's name is adam
    

    1. 파이프 문자 방식
    파이프 문자 로 여러 개의 일반적인 sed 명령 을 직접 연결 하면 됩 니 다.
       1.txt           ,   name     mingzi:
    $ nl 1.txt | sed '3,$d' | sed 's/name/mingzi/g'
         1  This is my cat,my cat's mingzi is betty
         2  This is my dog,my dog's mingzi is frank
    

    2. 여러 개 -e 옵션 을 사용 하여 실현
    하나의 sed 명령 에 여러 개의 - e 옵션 을 추가 하여 여러 개의 일치 모드 를 지정 합 니 다.
       1.txt           ,   name     mingzi:
    $ nl 1.txt | sed  -e  '3,$d'  -e  's/name/mingzi/g'   
         1  This is my cat,my cat's mingzi is betty
         2  This is my dog,my dog's mingzi is frank
    

    3. 사용 ; 여러 매 칭 실현
    sed 명령 의 일치 모드 에서 ; 를 통 해 여러 개의 일치 항목 을 구분 합 니 다.
  • 분점;뒤에 빈 칸 이 있 든 없 든 상 관 없 지만 미관 을 위해 서 는 더 하 는 것 이 좋다.
  •    1.txt           ,   name     mingzi:
    nl 1.txt | sed '3,$d; s/name/mingzi/g'       
         1  This is my cat,my cat's mingzi is betty
         2  This is my dog,my dog's mingzi is frank
    

    상기 세 가지 방식 의 효 과 는 같 으 니 여러분 이 비교 해 보 세 요.

    좋은 웹페이지 즐겨찾기