sed 또는 awk를 사용하여 정규식과 일치하는 여러 줄을 주석 처리하는 방법

나팀

다음을 포함하는 파일이 있습니다.

[...]

location /static {
    ...
    multiple lines
    ...
}

[...]

location /static/ {
    ...
    multiple lines
    ...
}

[...]

그리고 나는 얻고 싶다 :

[...]

# location /static {
#     ...
#     multiple lines
#     ...
# }

[...]

# location /static/ {
#     ...
#     multiple lines
#     ...
# }

[...]

유닉스 명령에 내 파일을 제공하는 방법은 무엇입니까?

멘돈

이것은 사소한 것이 아닙니다. {}블록에 다른 중첩 {}블록이 포함되어 있지 않다고 가정 할 수 있다면 더 쉽고 다음과 같이 할 수 있습니다.

perl -pe 'if(/location\s*\/static/){$n=1}elsif(/}/){$n=0} s/^/#/ if $n==1;' file

이것은 단순히 설정 $n1경우 현재 행 일치 location /static와 세트 그 뒤로 0처음에 }후 발견 location/static. 그런만큼 $n==1, 그것은을 addas #줄의 시작 부분에. -p플래그는 perl이 입력 파일을 자동으로 반복하고 각 행을 인쇄하도록합니다.

이제 주석을 달고 자하는 블록 내에 임의의 깊이 중첩 블록을 가질 수 있다면 상황이 더 복잡해집니다. 예를 들어, 다음과 같은 경우 :

location /static {
   if(foo){
      print "one";
   }
   elsif(bar){
      print "two";
   }
}

이와 같은 경우 위의 간단한 솔루션이 실패하고 open 수를 추적하는 솔루션을 사용해야합니다 {. 예를 들어 (실제로는 한 줄짜리이며 터미널에 직접 복사 / 붙여 넣기 할 수 있습니다. 명확성을 위해 확장했습니다.)

perl -pe 'if(/location\s*\/static/){$n=1;}
          elsif(/}/ && $open==0){$n=0} 
          if($n==1 && /{/){$open++} ## count open brackets
          elsif($n==1 && /}/){$open--} ## count closing brackets
          if($n==1 && $open>0){ s/^/#/}; ' file

마지막으로 솔루션이 예상대로 작동하면 -i플래그를 추가 하여 파일 자체를 변경할 수 있습니다.

perl -i -pe 'if(/location\s*\/static/){$n=1}elsif(/}/){$n=0} s/^/#/ if $n==1;' file

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

"sed"를 사용하여 특정 패턴과 일치하는 줄의 주석 처리 제거

분류에서Dev

sed를 사용하여 xml 파일의 내용을 주석 처리하는 방법은 무엇입니까?

분류에서Dev

grep 또는 sed를 사용하여 동일한 줄에서 여러 일치 항목을 추출하는 방법

분류에서Dev

SED를 사용하여 주석 섹션 내 주석을 대체하는 방법

분류에서Dev

여러 패턴을 일치시킨 후 awk 또는 sed를 사용하여 파일에서 결과 분리

분류에서Dev

sed 또는 awk를 사용하여 일치 후 줄 바꾸기

분류에서Dev

여러 줄 정규식을 사용하여 sed 또는 grep으로 TOML의 작은 부분 만 구문 분석

분류에서Dev

awk / sed를 사용하여 JSON과 유사한 파일을 구문 분석하는 가장 좋은 방법

분류에서Dev

sed를 사용하여 파일에서 여러 줄을 제거하는 방법

분류에서Dev

sed를 사용하여 파일에서 여러 줄을 검색하는 방법

분류에서Dev

여러 파일에서 gvim의 패턴과 일치하지 않는 행을 주석 처리하는 방법

분류에서Dev

vi 또는 vim을 사용하여 줄 번호로 지정된 여러 줄의 코드 주석 처리

분류에서Dev

awk / sed를 사용하여 여러 다른 위치에 줄을 삽입하여 두 파일을 결합하는 방법

분류에서Dev

하나 또는 여러 단어를 검색 키로 사용하여 한 줄을 일치시키는 정규식

분류에서Dev

sed를 사용하여 정규식과 일치하는 문자열을 와일드 카드로 바꾸기

분류에서Dev

.story 파일에서 여러 줄을 주석 처리하는 방법 (JBehave)

분류에서Dev

sed 또는 awk를 사용하여 일치하는 패턴과 이전 줄을 줄 바꿈 또는 공백까지 인쇄

분류에서Dev

awk 또는 sed를 사용하여 열에서 \ n을 제거하는 방법

분류에서Dev

awk 또는 sed를 사용하여 여러 파일에서 중복 줄 제거

분류에서Dev

특정 패턴을 기반으로 sed 또는 awk를 사용하여 특정 열을 수정하는 방법

분류에서Dev

정규식을 사용하여 검색 결과를 처리하는 방법은 무엇입니까?

분류에서Dev

sed 및 bash를 사용하여 다른 파일의 행과 일치하는 파일의 파일 경로를 주석 처리하십시오.

분류에서Dev

sed를 사용하여 변수 일치에 따라 줄을 바꾸는 방법

분류에서Dev

regex를 사용하여 여러 줄을 꺼리는 것과 일치시키는 방법

분류에서Dev

두 줄과 일치하는 sed를 사용하여 줄 추가

분류에서Dev

sed를 사용하여 xml 파일 줄을 바꾸는 방법

분류에서Dev

sed 또는 awk 줄의 일부를 줄의 끝에 복사하여 줄 서식을 다시 지정

분류에서Dev

awk 또는 sed를 사용하여 C ++ 코드의 반복되는 부분과 줄을 이동하는 방법은 무엇입니까?

분류에서Dev

실행 명령을 기반으로 sed 또는 awk를 사용하여 특정 행을 바꾸는 방법

Related 관련 기사

  1. 1

    "sed"를 사용하여 특정 패턴과 일치하는 줄의 주석 처리 제거

  2. 2

    sed를 사용하여 xml 파일의 내용을 주석 처리하는 방법은 무엇입니까?

  3. 3

    grep 또는 sed를 사용하여 동일한 줄에서 여러 일치 항목을 추출하는 방법

  4. 4

    SED를 사용하여 주석 섹션 내 주석을 대체하는 방법

  5. 5

    여러 패턴을 일치시킨 후 awk 또는 sed를 사용하여 파일에서 결과 분리

  6. 6

    sed 또는 awk를 사용하여 일치 후 줄 바꾸기

  7. 7

    여러 줄 정규식을 사용하여 sed 또는 grep으로 TOML의 작은 부분 만 구문 분석

  8. 8

    awk / sed를 사용하여 JSON과 유사한 파일을 구문 분석하는 가장 좋은 방법

  9. 9

    sed를 사용하여 파일에서 여러 줄을 제거하는 방법

  10. 10

    sed를 사용하여 파일에서 여러 줄을 검색하는 방법

  11. 11

    여러 파일에서 gvim의 패턴과 일치하지 않는 행을 주석 처리하는 방법

  12. 12

    vi 또는 vim을 사용하여 줄 번호로 지정된 여러 줄의 코드 주석 처리

  13. 13

    awk / sed를 사용하여 여러 다른 위치에 줄을 삽입하여 두 파일을 결합하는 방법

  14. 14

    하나 또는 여러 단어를 검색 키로 사용하여 한 줄을 일치시키는 정규식

  15. 15

    sed를 사용하여 정규식과 일치하는 문자열을 와일드 카드로 바꾸기

  16. 16

    .story 파일에서 여러 줄을 주석 처리하는 방법 (JBehave)

  17. 17

    sed 또는 awk를 사용하여 일치하는 패턴과 이전 줄을 줄 바꿈 또는 공백까지 인쇄

  18. 18

    awk 또는 sed를 사용하여 열에서 \ n을 제거하는 방법

  19. 19

    awk 또는 sed를 사용하여 여러 파일에서 중복 줄 제거

  20. 20

    특정 패턴을 기반으로 sed 또는 awk를 사용하여 특정 열을 수정하는 방법

  21. 21

    정규식을 사용하여 검색 결과를 처리하는 방법은 무엇입니까?

  22. 22

    sed 및 bash를 사용하여 다른 파일의 행과 일치하는 파일의 파일 경로를 주석 처리하십시오.

  23. 23

    sed를 사용하여 변수 일치에 따라 줄을 바꾸는 방법

  24. 24

    regex를 사용하여 여러 줄을 꺼리는 것과 일치시키는 방법

  25. 25

    두 줄과 일치하는 sed를 사용하여 줄 추가

  26. 26

    sed를 사용하여 xml 파일 줄을 바꾸는 방법

  27. 27

    sed 또는 awk 줄의 일부를 줄의 끝에 복사하여 줄 서식을 다시 지정

  28. 28

    awk 또는 sed를 사용하여 C ++ 코드의 반복되는 부분과 줄을 이동하는 방법은 무엇입니까?

  29. 29

    실행 명령을 기반으로 sed 또는 awk를 사용하여 특정 행을 바꾸는 방법

뜨겁다태그

보관