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