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.jshttp://www.css.com/style.csshttp://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

関連情報