[완료] Shell 에서 ,wgets 로 다운 받아온 파일 단어수 어떻게 세죠 ...

Sailor_moon의 이미지

안녕하세요 , 셸 스크립트를 짜는데 조금 막히는 부분이 있습니다.
sh search_engine.sh hello kldp
식으로 실행하면 , (아참 여기서 hello 와 kldp 는 arguments 입니다)
같은 폴더에 있는 url.txt 파일에 들어있는 url 리스트들을 차근 차근 불러와서 ,
해당 단어들이 , 각각의 url 에 몇번씩이나 등장하는지 검색하는 쉘을 짜고 있습니다.

우선
wgets 를 이용한 웹 사이트 url 을 받아와서 , 지금 파일들로 저장을 해 두었습니다.

#!/bin/bash
echo "input variables: "$#
for arg in "$@"
do
ncount=1
#read a file part 
while read line
do
wget -q $ncount.html $line
done<url.txt #read from URL 
 
done

여기까지는 했습니다.

보시면 아시겠지만 , url.txt 파일에서 url 리스트들을 받아오는데,

우선 , 저 저장하는 파일이름의 $ncount 가 안먹히네요 ...1.html , 2.html 이렇게 저장되길 기대했는데,
html 뒤에가서 번호가 붙더군요.

그리고 나서 , 저장된 각각의 url 로 부터 다운받아온 html 파일들에서 , 해당 단어를 하나하나 검색해보면서
각각의 사이트에서 몇번이나 등장 하나 보려고 합니다.

문제는 ...저장된 파일이 html 형식이라 엄청나게 복잡한데,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

위와 같이 쓸데 없는 구문들이 많이 들어있잖습니까 ?

사용자가 입력한 단어를
어떻게 정확히 콘텐츠만 골라내서 카운트 하느냐 입니다.

최종적으로는 맨 위의 실행어처럼 hello 와 kldp 가 인자로 넘어왔다면

hello in www.some......com 3회 등장
hello in www.YYYYY.ac.kr 5회 등장

kldp in www.kldp.org 10회 등장
...
..

이런식으로 만들고자 합니다.
정규식 표현을 쓰는 법도 모르겠고 ...도와주셨으면 합니다.
고맙습니다 ~

익명 사용자의 이미지

cat filename | sed -e 's/[^a-zA-Z]/\n/g' | grep hello | wc

Sailor_moon의 이미지

그런데 저 sed 구문은 글자 외의 것 없애는것 말고 안되지 않나요 ?
예를들어 ,
html 구문에 속해있는 단어들은 빼낼 방법이 없는것인지요

-------------------------------------------
정의의 이름으로 널 ! 용서하지 않겠다 !!

readme의 이미지

wget은

$Count=1;wget "url" -O "save_filepath_$Count.html" 이런식으로 하면 될거 같네요.

readme의 이미지

그리구 url 뽑아내는 정규식은 구글이나 네이버에 널려(..)있기때문에 그냥 붙여넣기 하는걸로 충분히

해결될거라고 생각합니다.;

그다음에 grep으로 url만 포함된 행을 전부 (url추출 정규식을 사용해서)뽑아낸다음에,

tr, cut 같은걸로 조금 가공하면 되겠죠.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.