나는 최근 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="[^"]*"
, 셸에서 해석되지 않도록 작은따옴표 안에 배치됩니다.*.html
grep
Regex/ 작업을 수행하려는 파일입니다. 이는*
현재 디렉터리의 모든 파일이 다음으로 끝나는 쉘 파일 이름 생성 패턴(문자 수와 일치)입니다..html
href="
문자 그대로 일치합니다[^"]*
next 까지 하위 문자열을 일치시켜"
이전*
토큰의 0개 이상의 발생과 일치하므로[^"]
두 s 사이에 문자가 없으면"
빈 문자열이 생성됩니다 ."
텍스트 일치"