grep rexExp에서 아포스트로피 사용

grep rexExp에서 아포스트로피 사용

나는 최근 regExp를 배우기 시작했고 grep을 사용하여 앵커 태그 URL만 추출하는 쉘에서 좋은 예를 발견했습니다.<a href="unix.stackexchange.com"></a>

grep - 'href="[^"]*"' *.html

내가 올바르게 얻으면 'href="[^"]*"'발견되었다는 뜻이지만 href="0-infinity character that does not have " in it "반드시 *따옴표 바깥에 있는 것은 아닙니다.

혼란스러워요. ' '문자의 특별한 의미를 탈출 하는 데 사용됩니다 . 따라서 *전혀 작동하지 않아야 합니다. +는 *.html= .html로 끝남을 의미해야 합니다 0-infinte characters. = 그러면 하나의 grep에 두 개의 ragExps를 가질 수 있습니까?

답변1

먼저 출력은 다음과 같습니다.

% grep -o 'href="[^"]*"' <<<'<a href="unix.stackexchange.com"></a>'
href="unix.stackexchange.com"
  • 정규식 패턴은 이며 href="[^"]*", 셸에서 해석되지 않도록 작은따옴표 안에 배치됩니다.

  • *.htmlgrepRegex/ 작업을 수행하려는 파일입니다. 이는 *현재 디렉터리의 모든 파일이 다음으로 끝나는 쉘 파일 이름 생성 패턴(문자 수와 일치)입니다..html

  • href="문자 그대로 일치합니다

  • [^"]*next 까지 하위 문자열을 일치시켜 "이전 *토큰의 0개 이상의 발생과 일치하므로 [^"]두 s 사이에 문자가 없으면 "빈 문자열이 생성됩니다 .

  • "텍스트 일치"

관련 정보