grep 명령을 사용하여 하이퍼링크 및 http://www.example.com을 제외한 모든 URL에 대해 데이터베이스 파일을 검색하고 이를 다른 파일에 저장하는 방법

grep 명령을 사용하여 하이퍼링크 및 http://www.example.com을 제외한 모든 URL에 대해 데이터베이스 파일을 검색하고 이를 다른 파일에 저장하는 방법

prod_database.sql이라는 데이터베이스 파일이 있고 하이퍼링크를 제외한 파일의 모든 URL을 검색하고 싶습니다.*http://www.example.com결과를 파일에 저장하고 싶습니다.
하이퍼링크 모드*: <a href="http://www.hyperlink.com"></a> 다음 내용이 포함된 prod_database.sql 파일이 있다고 가정합니다.

<html>
    <head>
    <script src="http://www.script.com/javascript1.js">
        <link href="http://www.css.com/style.css">
    </head>
    <body>
    Hello Anwar<br/>
    <a href="http://www.anchortag.com">Google</a><br/>
    <iframe src="http://www.iframe.com"></iframe>
    </body>
</html>

따라서 위 파일에서 앵커 태그(하이퍼링크)의 일부가 아닌 모든 URL을 검색해야 하며, <script>iframe <link>태그에서 예상되는 결과만 URL을 가져와야 합니다.http://www.script.com/javascript1.js,http://www.css.com/style.css,http://www.iframe.com

답변1

다음은 약간 보기 흉하지만 원하는 대로 작동하는 것 같습니다.

cat prod_database.sql | grep -Ev "<a href=\".*\">.*<\/a>" | grep -E "<.*=\"http:" | sed -r 's/^<.*=\"http/http/' | sed -r 's/\">.*$//'
http://www.script.com/javascript1.js
http://www.css.com/style.css
http://www.iframe.com

파일에 저장하려면 다음과 같이 원하는 위치로 리디렉션하면 됩니다.

cat prod_database.sql | grep -Ev "<a href=\".*\">.*<\/a>" | grep -E "<.*=\"http:" | sed -r 's/^<.*=\"http/http/' | sed -r 's/\">.*$//' > somefile.txt

내용은 다음과 같습니다.

cat somefile.txt 
http://www.script.com/javascript1.js
http://www.css.com/style.css
http://www.iframe.com

또는 다음을 통해 대체 구문/접근 방식(user1133275에서 언급한 대로)으로 전환하세요.

cat prod_database.sql | grep -Ev "<a href=\".*\">.*<\/a>" | grep -E "<.*=\"http:" | perl -pe 's/^<.*=\"http/http/' | perl -pe 's/\">.*$//'

파일에 저장하려면 다음과 같이 원하는 항목으로 리디렉션하면 됩니다(업데이트된 구문 사용).

cat prod_database.sql | grep -Ev "<a href=\".*\">.*<\/a>" | grep -E "<.*=\"http:" | perl -pe 's/^<.*=\"http/http/' | perl -pe 's/\">.*$//' > somefile.txt

답변2

grep-P옵션 과 함께 사용됨

grep -o -P '(?!<.*?(?<!(href))=")https?:\/\/(?!(www\.example\.com)).*?(?=(">))' input.txt > output.txt

명령은 input.txt파일을 읽고 파일을 씁니다 output.txt. 필요에 따라 파일 이름을 변경하십시오.

시험

입력.txt(예를 조금 복잡하게 만들었습니다)

<html>
<head>
<script src="http://www.script.com/javascript1.js"><script src="http://www.script.com/javascript2.js">

<link href="http://www.css.com/style.css">one <a><a href="http://www.anchortag.com">Google</a><br/>
</head>
<body>
Hello Anwar<br/><script src="https://www.script.com/javascript3.js">
<script src="http://www.script.com/javascript4.js">

<a href="http://www.anchortag.com">Google</a><br/>some words<a href="http://www.anchortag.com">Google</a><br/>

<iframe src="http://www.example.com"></iframe>
<br><br><iframe src="http://www.iframe.com"></iframe>
<iframe src="https://www.some_site1.com"></iframe><iframe src="https://www.some_site2.com"></iframe>
</body>
</html>

출력.txt

http://www.script.com/javascript1.js
http://www.script.com/javascript2.js
http://www.css.com/style.css
http://www.anchortag.com
https://www.script.com/javascript3.js
http://www.script.com/javascript4.js
http://www.anchortag.com
http://www.anchortag.com
http://www.iframe.com
https://www.some_site1.com
https://www.some_site2.com

관련 정보