انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: agape در 24 بهمن 1393، 01:45 بظ
-
با سلام من میخوام یه سری لینک از صفحه وب خارج کنم از grep برای فیلتر کردن استفاده میکنم
برای این منظور از شکل زیر از grep استفاده میکنم
| grep -oie "\(/forum/dl.php?server\).*\.\(7z\|zip\|rar\)" | sort | uniq
تا حدود زیادی خوب کار میکنه ولی مشکل اینه که وقتی مثلا لینکی به شکل زیر باشه درست کار نمیکنه
<p><a href="http://demo.ir/test.7z"> test.7z </a></p>
خروجیش مثل زیر خواهد شد
http://demo.ir/test.7z"> test.7z
حالا بع نظر شما کد رو چطور اصلاح کنم که خروجی درست بگیرم
-
اینا رو ببین:
http://forum.ubuntu.ir/index.php?topic=45672.0
http://forum.ubuntu.ir/index.php/topic,109197.msg884272.html#msg884272
-
$ mech-dump --links FILE
-
کدی که نوشتید روی مثالتون اصلا کار نخواهد کرد . شاید اینجا اشتباه وارد کردید . کد شما اینه :
| grep -oie "\(/forum/dl.php?server\).*\.\(7z\|zip\|rar\)" | sort | uniq
که با | شروع می شه !
ولی به طور کلی این نکته را در نظر داشته باشید که عبارتهای منظم حریص هستند و سعی می کنند تا با بزرگترین رشته ای که پیدا می کنن match بشن . با خروجی که برنامه تون می ده می شه حدس زد که باید توی عبارت منظم تون بعد از 7z یک " قرار دهید .
نسخه ساده :
$ echo '<p><a href="http://demo.ir/test.7z"> test.7z </a></p>' | grep -oie '".*7z"'