سیستم عامل برای من فقط یک رابط با سخت افزار نیست، برای من سیستم عامل یک دنیای پر از هیجان است که همیشه می شه توی گوشه کنارش چرخید، کنار پروسسهای قدم زد و سنگهای قشنگش رو از روی زمین برداشت و به بقیه نشون داد و شما خوب میدونین که کنار رودخونههای سرزمین لینوکس پر است از این سنگهای جلا خورده قشنگ…
امروز یک ایمیل گرفتم که توش یک نفر پرسیده بود یک عالمه دامین داره ولی نمیدونه کدومها به سایتی اشاره میکنن و کدوم ها استفاده ندارن و میخواست یک جوری اینو بفهمه. یک لیستی شبیه به این:
2009-11-24 09:51:05 2008-11-24 09:51:05 a.INFO
2009-11-24 09:51:10 2008-11-24 09:51:10 b.INFO
2009-11-24 09:51:16 2008-11-24 09:51:16 c.INFO
2009-11-24 09:51:24 2008-11-24 09:51:24 d.INFO
2009-11-24 09:51:30 2008-11-24 09:51:30 e.INFO
2009-11-24 09:51:34 2008-11-24 09:51:34 f.INFO
2009-11-24 09:51:39 2008-11-24 09:51:39 g.INFO
2009-11-24 09:51:43 2008-11-24 09:51:43 h.INFO
2009-11-24 09:51:48 2008-11-24 09:51:48 i.INFO
2009-11-24 09:51:52 2008-11-24 09:51:52 j.INFO
2009-11-24 09:51:58 2008-11-24 09:51:58 k.INFO
2009-11-24 09:52:03 2008-11-24 09:52:03 l.INFO
نظر خودش این بود که باید یکی یکی کپی کنه و توی براوزر بازشون کنه تا ببینه صفحه ای می یاد یا نه. اما اینجا ما لینوکس رو داریم با دستورهای زیبایی مثل cut و xargs. من به سادگی این دستور رو می زنم:
jadi@jubun:/tmp$ cut -d’ ‘ -f 7 | xargs firefox
اول به دستور cut با آپشن d می گم که space رو به عنوان جدا کننده در نظر بگیره و با f بهش میگم که فیلد هفتم ر ومیخوام (چون یک جاهایی دو تا اسپیس هست که خودشون یک فیلد حساب میشن) . این دسور همه اسم دامینها را برمیگردونه. بعد خروجی رو با یک | میفرستم به دستور بعدی. دستور بعدی xargs است که یک دستور جلوش میگیره (اینجا firefox) و همه ورودیها رو پشتش ردیف میکنه. در واقع ترکیب این دو دستور مثل اینه که من تایپ کرده باشم firefox a.Info b.info c.info تا آخر. در واقع حالا با زدن اون دستور و کپی پیست ایمیل دوستم به عنوان ورودی، کل اون دامینها در فایرفاکس باز میش و من میتونم بگم کدومشون به یک سایت اشاره میکنن و کدومها نه.
پ.ن. مشخصه که با دو سه خط «کد» نوشتن می شد خود برنامه چک کنه که خروجی برگشته از اون سایت، منطقی است یا نه . در واقع به راحتی میشد بقیه کار رو هم اتوماتیک کرد (: