لگو بازی با گنو/لینوکس: لیست دانلود در سه سوت

توسط: vahit

من امروز لازم داشتم که یه سری  لینک رو از توی یه صفحه‌ی وب پیدا کنم تا بتونم یکی یکی دانلودشون کنم. طبیعتاً مثه هیچ لینوکس‌کار دیگه‌ای حوصله‌ی منم به این کار نمی‌رسه مخصوصاً اگه ابزار مورد نیاز رو داشته باشم. پس توی سه سوت مشکل رو حل می‌کنم:

سوت اوّل: سورس صفحه‌ای رو که لینک‌ها رو ارائه می‌ده رو پیدا به شکل یه فایل متنی ذخیره می‌کنم و اسمش رو می‌زارم dirvers-source.txt. محتویات اون شبیه به خطوط زیر هستن:

که همه‌ی لینک‌های مورد نظر شامل کلمه‌ی exe هستن.

سوت دوّم: با دستور زیر لینک‌ها رو از بین عبارت‌های دیگه می‌کشم بیرون و توی فایل متنی دیگه‌ای به اسم links.txt ذخیره می‌کنم.

خروجی این دستور به این شکل هست:

 

قسمت اوّل که معلومه کلیه خطوطی که کلمه‌ی exe رو شامل می‌شن رو پیدا می‌کنم به طوریکه با آپشن i به grep گفتم که از بزرگی و کوچکی حروف صرف نظر کنه.

قسمت دوّم اینکه همه‌ی اون خطوطی از قسمت اوّل رو که شامل کلمه‌ی file هستن رو با استفاده از آپشن v دستور grep نادیده می‌گیرم. خروجی رو به دستور cut انتقال می‌دم.

در قسمت سوّم با استفاده از آپشن d جداکننده‌ی مورد استفاده‌ی دستور cut رو تغییر می‌دم و برابر جفت کوتیشن (quotation mark – “)  می‌زارم و با استفاده از آپشن f بهش می‌گم که فیلد دوّم رو برگردونه.  و در نهایت خروجی رو به فایل متنی مورد نظر با اسم links.txt ارسال می‌کنم.

سوت سوّم و در نهایت با استفاده از دستور wget و آپشن‌های c و i شروع به دانلود می‌کمیم.