[Shell Script] HTML 파일에서 특정 속성값 얻기

 HTML 파일에서 특정 속성값 얻기 




expr 명령어

expr명령어는 “expr 변수명 : 패턴” 형식의 정규 포현식에 활용해 변수의 문자열에서 일치하는 부분을 추출하는데 사용할 수 있습니다 .


다음 예의 출력은 pen 입니다 .  


string = “this is a pen.”

expr “$string” : this is a \(.*\).”



스크립트 작성 


#!/bin/sh

quote="[\"']"       #1
match="[^\"']*"     #2

while read line
do
    href=$(expr "$line" : ".*href=${quote}\(${match}\)${quote}.*") #3
   
        echo $href
   

done < index.html



이 스크립트는 현재 디렉터리에 있는 index.html 파일에서 HTML 태그의 href 속성을 찾아 그 속성값을 표시 합니다 .
HTML 파일에서 어떤 속성 값을 취득하려면 패턴 매치를 사용하여 해당 부분을 뽑아내는 방법이 간편합니다 .


따옴표 기호는 이스케이프가 필요해서 패턴안에 같이 쓰면 보기 어려우므로 이렇게 별도로 셸 변수로 정의 합니다 . 
#2에서는 href 속성 부분에 일치하는 정규표현식을 준비합니다 . 
#3에서 expr명령어로 파일에서 한줄씩 읽고 일치여부를 확인합니다 . 

#1 에서 따옴표 부분을 표현하는 정규표현식을 준비합니다 .


결과 

index.html안에 a href = “ hello.html”을 출력합니다 .