انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: Matrix.1372 در 27 اسفند 1391، 03:03 بظ
-
سلام دوستان.
من یک فایل xml دارم که توش همچین چیزی قرار داره:
<url>
<loc>http://axgir.com/displayimage.php?pos=-3929</loc>
<image:image>
<image:loc>http://axgir.com/albums/main/2001 to 3000/buildings-2032.jpg</image:loc>
<image:title>buildings</image:title>
</image:image>
<lastmod>2013-03-11T08:30:46+03:30</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
تا الان ۶۰۰۰ تا از این تگ url هست و روزبهروز داره بیشتر میشه.
حالا من یه اسکریپتی میخوام که فقط محتوای بین تگ loc رو درآره (در واقع لینک یه صفحه وب هست)، مثلا این:
<loc>http://axgir.com/displayimage.php?pos=-3929</loc>
و خروجی رو توی یک فایل txt بذاره مثلا اینطوری:
http://axgir.com/displayimage.php?pos=-3929
http://axgir.com/displayimage.php?pos=-3932
http://axgir.com/displayimage.php?pos=-3934
http://axgir.com/displayimage.php?pos=-3937
بعد یه اسکریپت دیگه میخوام که این فایل خروجی رو بگیره و بهصورت تصادفی از این لیست دستههای ۲۰ تایی از لینکها درست کنه.
این فایل xml هست برای اطلاعات بیشتر:
http://axgir.com/sitemaps/cat2-sitemap.xml
خب حالا من با چی میتونم این اسکریپت رو بسازم؟
میدونم جسارته ولی کسی میتونه این اسکریپت رو لطف کنه و بنویسه؟ [-o<
اگرم نه لطفا راهنمایی کنید.
با تشکر
-
خب صادق جان با همین bash میتونی چیز ایده آلی درست کنی.
نمونش هم توی بعضی سایتها هست. فقط اگر اشتباه نکنم باید یه طوری خروجی دستوراتی مثل cut و grep رو به هم لوله کشی کنی و در آخر نتیجه رو توی فایل تکست قرار بدی. توی جزوه LPI-101 دانشگاه شریف بود. کدش رو پیدا میکنم برات قرار میدم (البته اگه کسی پیش دستی نکنه تا موقعی که من اسکریپت رو پیدا میکنم ;) ) .
-
در مورد سوال اولی تست کن ببینید جواب مناسب هست یا نه ! :
egrep -i "\<(((http://)|(https://))(www)?(\.)?[^ ]*\.php)\>"
-
در مورد سوال اولی تست کن ببینید جواب مناسب هست یا نه ! :
egrep -i "\<(((http://)|(https://))(www)?(\.)?[^ ]*\.php)\>"
++
بسیار ممنونم از اینکه زحمت کشیدین.
خیلی لطف کردین.
کد به درستی کار میکنه، فقط یه مشکلی داشت اونم اینکه خود تگهای <loc> و </loc> هم توی خروجی بود، که اونم با ادیتور طی دو حرکت درست کردم! ;)
بازم ممنون، لطف کردی.
فقط میمونه اون بخش انتخاب تصادفی.
-
ببین مناسب هست یا نه ؟ :
x=1
while [ $x -le 10 ];
do
echo "|------------|" >> /home/Yourname/Desktop/endresult
shuf -n 20 /home/Yourname/Desktop/test >> /home/Yourname/Desktop/endresult
echo "|------------|" >> /home/Yourname/Desktop/endresult
x=$(( $x + 1 ))
done
تعداد تکرار رو می تونی در شرط حلقه (عدد 10) رو تغییر بدی .
-
ببین مناسب هست یا نه ؟ :
x=1
while [ $x -le 10 ];
do
echo "|------------|" >> /home/Yourname/Desktop/endresult
shuf -n 20 /home/Yourname/Desktop/test >> /home/Yourname/Desktop/endresult
echo "|------------|" >> /home/Yourname/Desktop/endresult
x=$(( $x + 1 ))
done
تعداد تکرار رو می تونی در شرط حلقه (عدد 10) رو تغییر بدی .
++
وااای سید جان نمیدونم با چه زبونی ازت تشکر کنم.
واقعا لطف کردی.
خدا علمت رو زیاد کنه، سواد ما را نیز...