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