구분 기호 사이의 그룹을 캡처하기 위한 sed 정규식

구분 기호 사이의 그룹을 캡처하기 위한 sed 정규식

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

# 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. 마지막은 psed에게 일치하는 항목이 있으면 결과를 인쇄해야 한다고 알려줍니다.

관련 정보