구분 기호 사이의 캡처 그룹에 대한 sed 정규식

구분 기호 사이의 캡처 그룹에 대한 sed 정규식

sed를 사용하여 bash 스크립트에 대한 일부 정보를 얻으려는 두 줄의 파일이 있습니다.

# File Comment
PrefixForInformation {information to be captured}

중괄호를 포함하지 않고 사이에 정보를 가져와야 합니다. PCRE 정규식이 있거나 다음에서 작동하는 것 같습니다 /{(.*)}/.\s{([^}]*)온라인 정규식 101하지만 작동하는 sed 구성으로 넘어갈 수는 없습니다.

답변1

$ sed -n 's/.*{\(.*\)}.*/\1/p' file
information to be captured

작동 원리

  • -n

    이는 명시적으로 요청하지 않는 한 sed가 아무것도 인쇄하지 않도록 지시합니다.

  • s/.*{\(.*\)}.*/\1/p

    이 대체 명령은 두 개의 중괄호 사이에 있는 모든 항목을 그룹 1로 캡처합니다. 전체 라인은 로 표시된 그룹 1로 대체됩니다 \1. 끝에 있는 p는 일치하는 경우 결과를 인쇄해야 한다고 sed에게 알려줍니다.

관련 정보