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

دیروز با یک مشکل مواجه شدم. می خواستم تمام فونت های font.ir را که در حدود ۵۰ فونت هست را دریافت کنم. تنبلی من اجازه نمی داد روی تمام لینک کلیک کنم. تصمیم گرفتم تا لینک های درون صفحه را استخراج کنم و بعد همه را به صورت دسته ای دانلود کنم. خوب اولین و تنها چیزی که به ذهنم رسید استفاده از sed بود. بعد از کلی کلنجار رفتن نتیجه زیرحاصل شد.

اول صفحه سایت font.ir را ذخیره کردم و با خط زیر به نتیجه دلخواه رسیدم:

sed -n ‘s/.*\(http.*ttf\).*/\1/p’ font.html | xargs wget

مهمترین نکته توی این خط دستور، استفاده از «.» و «*» در regex بود. من همیشه استفاده از این دو را در wildcard و regex اشتباه می گرفتم. ولی با این نمونه کلا موضوع برام شفاف شد. در regex «.» به عنوان character set و «*» به عنوان modifire است (فرض را براین گرفتم که شما از سه ماده اولیه یک regex یهنی character set، modifire و anchors آگاهی دارید. در صورتی که به گوشتون نخورده به اینجا مراجعه کنید.). برای همین شما نمی تونید از «*» به تنهایی استفاده کنید و همان نتیجه مشابه در wildcard را بگیرید. حتما باید به همراه یک character set ازش استفاده کنید.

در مورد بقیه قسمت ها هم در صورتی که با sed آشنایی داشته باشید، مشکلی در فهم دستور نخواهید داشت. اگه ندارید به اینجا مراجعه کنید.

ترفند در تایپ ترکیبی فارسی و انگلیسی

دیروز مقاله بسیار خوبی دوستی در اینجا نوشته بود. خیلی عالی بود دلم نیومد منم دوباره وجودش را یادآوری نکنم. شاید در شروع یکم براتون سخت باشه ولی بعد چند تا نمونه موضوع جا می افته.

مهمترین نکته فقط که من احساس کردم توی متن کمه اینه که دکمه های مورد نظر را باید بعد از پایان تایپ کلمه اضافه شده وارد کنید برای مثال:

برای گذاشتن علامت سؤال بعد از کلمه linux? می تونیم استفاده کنیم.

برای گذاشتن علامت سؤال بعد از کلمهlinux? ‎  می تونیم استفاده کنیم.

مورد دوم موردی هست که بعد از کلمه linux?‎ کلیدهای alt + (‎ زده شده.

من هنوز نتونستم لم کار را پیدا کنم . یا شاید کلاً اینطوریه!؟ موقع تایپ هر چی دکمه alt + (‎ را فشار بدی کار نمی کنه، ولی بعد از اینکه جمله کامل شد اگه برگردی به کلمه مورد نظر و دکمه alt + (‎ را بزنی درست کار می کنه.

Non-free firmware ها در دبیان

امروز یه تجربه خوب (شایدم بد) با نصب دبیان داشتم. نسخه اسکوییز را می خواستم روی سیستمم نصب کنم،  به دلیل اینکه DVD-ROM روی سیستم خیلی قدیمی بود، پیغام خطا می داد که نمی تونم firmware را پیدا کنم. بماند که مشکل من حل نشد و یک درایو دیگه روی سیستم گذاشتم، ولی بد ندیدم که در مورد این مطلب اینجا مطلب بزارم.

همانطور که می دونید دبیان در این نسخه از خودش سعی کرد تا «راهنمای نرم افزار آزاد دبیان» را تمام کمال رعایت کنه. به همین دلیل کلیه firmware های non-free مربوط به هسته را از لوح های فشرده (CD/DVD) حذف کرد و همه را داخل مخازن non-free قرار داد.

خوب الان مشکلی که به وجود می یاد اینه که شما مثل من ممکنه در هنگام نصب هم به یک سری firmware ها نیاز پیدا کنید. برای این موضوع پیش بینی لازم شده (به غیر از چند مورد مثل مورد من، firmware درایو cdrom ام را نتونستم پیدا کنم) شما کافیه بسته firmware مورد نیاز و یا همه آنها را دریافت کنید و در ریشه یک فلش دیسک قرار دهید و در هنگام نصب آن را به سیستم متصل کنید. با این کار نصاب دبیان خود در صورت نیاز به firmware اضافه درایو فلش دیسک شما را جستجو می کند. لزومی نداره که دیسک شما خالی باشه.

فایل های firmware را از اینجا و اینجا می تونید دریافت کنید.

تغییر encoding یک فایل

امروز به یه مشکل خوردم. یه فایل با encoding WINDOWS-1256 داشتم باید تغییرش می دادم به utf8 . با دستور ساده زیر این کار انجام شد:

behrad@debian:~$ iconv -f WINDOWS-1256 -t utf8 index.htm > newindex.htm

برای اینکه اسم encoding ها را ببینید و اینکه به چه شکل به دستور بدید می تونید از دستور زیر استفاده کنید

behrad@debian:~$ iconv –list