[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”을 출력합니다 .