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