حذف یک خط از فایل با sed

مثلا می‌خواهید خط پنجم یک فایل رو پاک کنید:

این دستور خط پنجم فایل ورودی رو حذف و نتیجه رو نشون می‌ده. اگه بخواهید خروجی توی همون فایل ورودی ذخیره بشه این دستور رو بزنید:

پی‌نوشت: البته از دستور awk هم می‌شه برای این کار استفاده کرد
پی‌نوشت: استفاده از head و tail پشت سر هم یک ایده دیگس.

ارسال خروجی یک دستور به کلیپ‌بورد

xclip رو نصب کنید و به این صورت از اون استفاده کنید:

حالا خروجی برنامه توی کلیپ‌بورد شما قرار داره می‌تونید اون رو توی برنامه‌های دیگه پیست کنید.

برای این که راحت‌تر باشید می‌تونید یک alias براش بسازید مثل این (این خط رو توی فایل bashrc تون اضافه کنید)

و از این به بعد به این صورت ازش استفاده کنید:

خیلی کار پیچیده‌ای نیست به نظرم توضیح بیشتری لازم نداره.

البته راه دیگش هم اینه که خروجی رو با موس انتخاب کنید و کپی کنید 😀

درست کردن زمان فایل‌های mp3

تعدادی فایل mp3 دانلود کرده بودم که توی کلمنتاین زمان این فایل‌ها درست تشخیص داده نمی‌شدند. بعضی از اون‌ها رو کلمنتاین زمانشون رو بیشتر نشون می‌داد، برای بعضی کمتر و برای تعداد زیادی هم اصلا زمان فایل رو نمی‌تونست تشخیص بده و این کمی آزار دهنده بود. کمی توی اینترنت سرچ زدم و دیدم افراد دیگه هم این مشکل براشون پیش اومده بوه و راه حل هم اینه، برای این که کل فایل‌های mp3 توی یه شاخه رو درست کنید کافیه این دستور رو بزنید:

سپس برید توی clementine روی ابزارها -> انجام وارسی دوباره دوباره کامل کتابخانه کلیک کنید تا کلمنتاین کل موزیکاتون رو دوباره اسکن کنه

clementine-scan-library.

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

منبع

چند خط کد پایتون داخل اسکریپت shell

برای کاری چند خط shell script نوشته بودم که توی قسمتیش می‌خواستم یک فایل generate کنم، این کار با پایتون خیلی خوشدست‌تر بود و اگه می‌شد چند خط پایتون توی این اسکریپت شل اضافه کنم زندگی به مراتب ساده‌تر می‌شد.

روش این کار بسیار ساده بود. اینجا یک نمونه کد گذاشتم:

توی این مثال من یکی از ماژول‌های پایتون رو ایمپورت کردم و یک حلقه for هم نوشتم:

اگه بخواین می‌تونین توی شل اسکریپتتون یک متغیر تعریف کنید و توی اسکریپت پایتون بهش دسترسی داشته باشید:

فقط دقت کنید برای تعریف کردن متغیرهاتون باید حتما از کلمه کلیدی export استفاده کنید.

نکته‌ای که در مورد کلمه کلیدی EOF هست اینه که این کلمه شروع و پایان کد پایتون رو مشخص می‌کنه ولی لزوما نباید EOF باشه و شما می‌تونید هر کلمه کلیدی که دوست دارید استفاده کنید، فقط باید دقت کنید قطعه کدتون باید با همون کلمه کلیدی که شروع کردید بسته بشه.

حلقه while true در shell

بعضی وقت‌ها پیش میاد که دوست دارم توی بش یک دستوری مرتب اجرا بشه و تا زمانی که خروجی مورد نظرم رو بگیرم به اجرا کردن این دستور ادامه بده. برای این کار می‌شه یه حلقه while نوشت که مرتب دستور مورد نظر رو اجرا کنه فقط کافیه به جای while true بنویسید while : (دو نقطه هم هست) یک چیزی مثل این:

این قسمت sleep 1 رو بزارید چون برای بعضی دستورها وقتی ctrl+c می‌زنم اگه این sleep 1 نباشه حلقه متوقف نمی‌شه.

دستور بالا به صورت یک خطی میشه این:

توضیح این که شما می‌تونید از دستور break هم برای خروج از حلقه استفاده کنید. توی این قسمت یک مثال خیلی ساده از break رو اوردم، توی مثال اگه زمان ثانیه شمار سیستم مضربی از ۱۰ باشه دستور break اجرا می‌شه و برنامه از حلقه خارج می‌شه:

البته راه ساده‌تر از while دستور watch هست که همین کار رو می‌کنه و لازم نیست حلقه بنویسید ولی من با این وجود به نوشتن حلقه علاقه بیشتری دارم 🙂