انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: استخراج لینک از فایل متنی  (دفعات بازدید: 1289 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین feeruzy

  • Jr. Member
  • *
  • ارسال: 56
  • جنسیت : پسر
    • My Personal Page
استخراج لینک از فایل متنی
« : 30 شهریور 1391، 07:44 ب‌ظ »
سلام. احتمالا انجمن درستی رو برای سوالم انتخاب کردم.
چطوری میشه یه لینک رو از یه متن با grep یا sed استخراج کرد بطوریکه تنها همون url و نه تمام اون خط انتقال پیدا کنه؟


<td><a href="../pdf/117-144-C612-10.pdf" target=_blank><img border=0 src="../images/pdf.jpg"></a><a href="../pdf/117-144-C612-10.pdf" target=_blank><font face=tahoma size=2>sample</a></td>
<td dir=ltr align=center><font face=tahoma style="font-size:11px;"> (274 KB)</font>
</td>


من از این دستور برای جدا کردن این قسمت از سورس html استفاده کردم و نتیجه هم بالایی هست:

grep "../pdf" 1>2

لطفا طوری دستور رو بازسازی کنید که نتیجه بشه :

../pdf/117-144-C612-10.pdf
زندگی جاریست!

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
پاسخ : استخراج لینک از فایل متنی
« پاسخ #1 : 30 شهریور 1391، 08:30 ب‌ظ »
برای چه هدفی این کار رو انجام میدید؟

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
پاسخ : استخراج لینک از فایل متنی
« پاسخ #2 : 30 شهریور 1391، 08:50 ب‌ظ »
از این regular expression میتونید استفاده کنید.
href="*"البته اینجوری لینک رو به همراه دوتا "" و کلمه href انتخاب میکنه
Ubuntu 14.04 LTS 64-bit - unity

آفلاین feeruzy

  • Jr. Member
  • *
  • ارسال: 56
  • جنسیت : پسر
    • My Personal Page
پاسخ : استخراج لینک از فایل متنی
« پاسخ #3 : 30 شهریور 1391، 10:53 ب‌ظ »
از این regular expression میتونید استفاده کنید.
href="*"البته اینجوری لینک رو به همراه دوتا "" و کلمه href انتخاب میکنه

با استفاده از این دستور تمام تگهای موجود در اون سطر به فایل جدید منتقل میشه. منظور من فقط انتقال URL هست بدون تگهای html
زندگی جاریست!

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
پاسخ : استخراج لینک از فایل متنی
« پاسخ #4 : 30 شهریور 1391، 11:06 ب‌ظ »
شما میتونی در دو مرحله این کارو انجام بدی. در مرحله اول همین کاری که گفتم رو انجام بدی که یه فایلی بدست میاد به این صورت:
href="url1"
href="url2"
...
بعد میتونی با یه دستور دیگه فقط URL ها رو جدا کنی.
میتونی از طریق لوله گذاری (piping) خروجی دستور اول رو ورودی دستور دوم کنی یا میتونی واسه همه اینا یه script بنویسی.
Ubuntu 14.04 LTS 64-bit - unity

آفلاین Hadron

  • Full Member
  • *
  • ارسال: 150
  • جنسیت : پسر
پاسخ : استخراج لینک از فایل متنی
« پاسخ #5 : 31 شهریور 1391، 01:43 ق‌ظ »
چطوری میشه یه لینک رو از یه متن با grep یا sed استخراج کرد بطوریکه تنها همون url و نه تمام اون خط انتقال پیدا کنه؟
خودت که ایده‌اش را داری (-> grep & sed)، فقط با یک آپشن "o" به چیزی که می‌خوای می‌رسی!
man grep
-o, --only-matching
Print  only  the  matched  (non-empty)  parts  of  a  matching line, with each such part on a separate output line.


آمیزش sed ،grep و sort برای داشتن یک برون‌ده‌ی پاک:
grep -o 'href="[^"]\+"' INPUT | sort -u | sed 's/href="//' | sed 's/"//' > OUTPUT
« آخرین ویرایش: 31 شهریور 1391، 01:51 ق‌ظ توسط Hadron »