تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

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


    ۲۱ تیر ۱۳۹۹
    دستور‌های لینوکس برای مشاهده و مرتب‌سازی فایل‌ها

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

    بیایید با دستور cat که به احتمال زیاد آن را بسیار دیده‌اید، شروع کنیم. دستور cat برای ترکیب و یکی‌کردن چندین فایل و یا مشاهده محتوای آن‌ها استفاده می‌شود.

    ۱) دستور cat

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

    نحوه استفاده از دستور cat

    بیایید با مثال این قضیه را بررسی کنیم، فرض کنید دو فایل با نام‌ها grocery1.txt و grocery2.txt داریم که هرکدام شامل لیستی از خواربارهای مختلف است.

    ابتدا محتوای فایل اول را توسط دستور cat، مشاهده می‌کنیم:

    مشاهده محتویات فایل grocery1.txt

    از همین روش، محتویات فایل دوم را مشاهده می‌کنیم:

    مشاهده محتویات فایل grocery2.txt

    در مثال‌های بالا، از دستور cat <filename> برای مشاهده محتویات فایل استفاده کردیم.

    اما چه می‌شود اگر بخواهیم فایل‌های بالا را ترکیب کنیم و هر دو آن‌ها را در یک فایل داشته باشیم؟

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

    ترکیب دو فایل grocery1.txt و grocery2.txt در فایل groceryFinal.txt

    در مثال بالا، از دستور cat grocery1.txt grocery2.txt > groceryFinal.txt استفاده کردیم که در زیر به بیان بخش‌های مختلف آن می‌پردازیم:

    • cat نشان‌دهنده دستوری است که برای مشاهده محتویات فایل از آن استفاده می‌کنیم.
    • grocery1.txt grocery2.txt نام فایل‌هایی است که می‌خواهیم آن‌ها را یکی کنیم.
    • > نشان‌دهنده این است که می‌خواهیم خروجی یک دستور را به عنوان ورودی، به دستور دیگری هدایت کنیم.
    • groceryFinal.txt نشان‌دهنده نام فایل خروجی است، درواقع فایلی که می‌خواهیم نتیجه را در آن ذخیره کنیم.

    برای تایید اینکه تمام محتویات این دو فایل به درستی و به صورت کامل به فایل خروجی منتقل شده است، از دستور cat groceryFinal.txt استفاده می‌کنیم تا محتویات آن را مشاهده کنیم.

    اما خروجی دستور بالا، برای خواندن اندکی دشوار است، چه اتفاقی می‌افتد که اگر خروجی را در حالی که هر خط شماره دارد، مشاهده کنیم؟

    بیایید آن را امتحان کنیم:

    مشاهده فایل خروجی به همراه شماره هر خط

    در مثال بالا از دستور cat -n groceryFinal.txt استفاده کردیم که در آن -n سوییچی است که از آن برای نمایش شماره هر خط استفاده می‌کنیم.

    ۲) دستور tac

    دستور tac، برعکس دستور cat عمل می‌کند، به عبارتی محتویات فایل را از انتها نمایش می‌دهد. توجه کنید که محتویات فایل را تغییر نمی‌دهد، بلکه تنها آن را از انتها به ابتدا می‌خواند.

    نحوه استفاده از دستور tac

    برای استفاده از این دستور، کافی است این دستور را به همراه نام فایل مدنظرتان اجرا کنید.

    برای مثال می‌توانیم محتویات فایل groceryFinal.txt را، که در مرحله قبل ایجاد کردیم، توسط دستور tac، به صورت برعکس مشاهده کنیم:

    مشاهده محتویات فایل groceryFinal.txt، از انتها به ابتدا، توسط دستور tac

    در این مثال، از دستور tac groceryFinal.txt استفاده کردیم، که باعث می‌شود محتویات فایل ذکرشده را به صورت برعکس مشاهده کردیم.

    ۳) دستور rev

    این دستور برای برعکس‌کردن خط به خط محتوای یک فایل استفاده می‌شود. یک فایل را از بالا می‌خواند اما هر خط از محتوای آن را برعکس می‌کند و نمایش می‌دهد. تصویر زیر نمایش‌دهنده نحوه استفاده از دستور rev است:

    نحوه استفاده از دستور rev

    تنها کاری که باید بکنید این است که نام فایل مدنظرتان را ادامه این دستور بنویسید و آن را اجرا کنید.

    بیایید فایل groceryFinal.txt را به عنوان ورودی این دستور قرار دهیم و آن را اجرا کنیم:

    مشاهده محتویات فایل groceryFinal.txt به صورت برعکس توسط دستور rev

    در تصویر بالا از دستور rev استفاده کردیم که هر خط از محتوای این فایل را برعکس می‌کند و نمایش می‌دهد. توجه داشته باشید که محتوای فایل تغییری نمی‌کند، بلکه تنها آن را به شیوه دیگری نمایش می‌دهد.

    از نظر من این دستور هیچ کاربردی غیر از این ندارد که به قصد آزار دیگری، فایلی را با این دستور تغییر دهید و باعث سردرگمی آن شخص شوید. 🙂

    ۴) دستور less

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

    نحوه استفاده از دستور less

    با توجه به تصویر بالا، تنها کاری که نیاز است انجام دهید این است که این دستور را به همراه نام فایل مدنظرتان اجرا کنید.

    دستورات و امکانات قابل استفاده در less

    less امکانات و قابلیت‌های زیادی ازجمله: جست‌وجو در محتوای فایل، بالا و پایین‌رفتن در فایل تنها در محیط ترمینال و … را فراهم می‌کند.

    ۵) دستورهای head و tail

    head دستوری است که با استفاده از آن می‌توان تعداد خط مشخصی را از ابتدای فایل نمایش دهیم، به طور مثال با استفاده از توانایی این دستور می‌توانید ۵ خط ابتدایی یک فایل را مشاهده کنیم و به مابقی و ادامه آن هم کاری نداشته باشیم. در مقابل دستور tail قرار دارد که همین کار را از انتهای فایل انجام می‌دهد.

    مثال زیر نحوه استفاده از دستور head به جهت مشاهده ۲ خط ابتدایی فایل groceryFinal.txt است:

    مشاهده ۲ خط ابتدایی فایل groceryFinal.txt توسط دستور head

    در تصویر بالا از دستور head -n 2 groceryFinal.txt استفاده کردیم، که درآن -n 2، تعداد خط‌هایی که می‌خواهیم از ابتدا نشان دهیم را مشخص می‌کند.

    تصویر زیر مثالی از استفاده از دستور tail است:

    مشاهده ۲ خط انتهایی فایل groceryFinal.txt توسط دستور tail

    -n 2 تعداد خط‌هایی که می‌خواهیم از انتها نشان دهیم را مشخص می‌کند.

    بنابراین head و tail، دستورهایی هستند که برای مشاهده بخشی از ابتدا یا انتهای یک فایل استفاده می‌شوند.

    ۶) دستور sort

    دستور sort برای مرتب‌سازی خطوط محتوای یک فایل استفاده می‌شود. تصویر زیر نحوه استفاده از این دستور است:

    نحوه استفاده از دستور sort

    برای استفاده از این دستور تنها کافی است که بعد از دستور sort، گزینه‌های مدنظرتان را به همراه نام فایل مشخص کنید.

    اجرای دستور sort بر روی فایل groceryFinal.txt

    در مثال بالا از دستور sort groceryFinal.txt استفاده کردیم که خطوط این فایل را به صورت صعودی در حروف الفبای انگلیسی مرتب می‌کند.

    اما اگر بخواهیم به صورت نزولی مرتب کنیم، باید چگونه این دستور را اجرا کنیم؟

    مرتب‌کردن محتویات یک فایل به صورت نزولی با دستور sort

    در مثال بالا از دستور sort -r groceryFinal.txt استفاده کردیم، که در آن سوییچ -r، مشخص می‌کند که می‌خواهیم به صورت نزولی عملیات مرتب‌سازی را انجام دهیم.

    آیا می‌توانید حدس بزنید که از چه راه دیگری می‌توانیم به خروجی بالا برسیم؟

    اگر حدستان دستور tac است، باید بگویم که بله، درست حدس زده‌اید. می‌توانیم خروجی دستور sort، که به طور پیشفرض به صورت صعودی است را به عنوان ورودی برای دستور tac هدایت کنیم تا خروجی مانند نتیجه مثل قبل شود sort groceryFinal.txt | tac.

    اما چه اتفاقی بر سر اعداد خواهد افتاد؟ بیایید بررسی کنیم که دستور sort چه رفتاری با فایلی حاوی اعداد دارد:

    اجرای دستور sort بر فایل حاوی اعداد و خروجی اشتباه

    صبر کنید، نتیجه اشتباه است، اما چرا؟ دستور sort به طور پیشفرض رقم به رقم عملیات مقایسه را انجام می‌دهد و کاری به مابقی ارقام ندارد (به عبارتی تنها اولین رقم مورد مقایسه قرار می‌گیرد). با‌این‌حال برای مرتب‌سازی اعداد چه کاری باید انجام دهیم؟

    تصویر زیر نحوه مرتب‌سازی اعداد داخل یک فایل توسط دستور sort است:

    اجرای دستور sort بر فایل حاوی اعداد به شیوه صحیح

    در مثال بالا، -n گزینه‌ای است که باعث می‌شود بتوان اعداد را مرتب کرد و در نهایت نام فایل ورودی قرار داده شده است.

    برای نمایش اعداد به صورت مرتب‌شده، درحالی که موارد اضافه‌ی تکراری حذف شده‌اند (درواقع اگر عدد تکراری وجود داشته تنها یکی از آن‌ها وجود خواهد داشت و مابقی نمایش داده نخواهند شد)، می‌توانید از دستور زیر استفاده کنید:

    نمایش اعداد یکتا و مرتب‌شده داخل فایل

    در مثال بالا، سوییچ -un، این موضوع را نشان می‌دهد که نوع مرتب‌سازی، مرتب‌سازی اعداد با خروجی یکتا (unique) می‌باشد.

    اما فایلی را تصور کنید که در آن چندین ستون داشته باشید و بخواهید خروجی را براساس دیتای موجود در یک ستون خاص مرتب کنید، در این حالت چاره چیست؟ تصویر زیر پاسخ این قضیه است:

    مرتب‌سازی براساس یک ستون مشخص

    در این مثال، سوییچ -k 2n به این معنا است که می‌خواهیم خروجی براساس ستون دوم که مقادیر آن عددی است، مرتب شود، درواقع -n همانند مثال‌های قبلی بیانگر مرتب‌سازی اعداد ستون دوم، توسط این دستور است.

    این دستورها، دستورهای پایه‌ای برای مشاهده فایل‌ها در سیستم‌عامل ‌لینوکس بودند.

    منبع: https://dev.to/yashsugandh/commands-for-viewing-and-sorting-files-452j

    برچسب‌ها:

    ســــــــــــــــــــــال‌هاست که هستیم

    ۶ سال در کنار شما تجربه جمع کردیم. تازه در ابتدای مسیر هستیم، مسیر ساخت آینده.

    جمع‌مـــــــــــان، جمع است

    بیش از ۴۰ هزار توسعه‌دهنده و صاحبان کسب و کار در جمع ما هستند. جای شما خالی‌ست...

    خدمات رایگان لیارا

    ۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

    ۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

    هاست رایگان برای دیتابیس‌

    دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

    سرویس DNS رایگان

    به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

    ۱۰۰ هزار تومان اعتبار اولیه

    بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

    ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

    در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید. (به‌همراه دسترسی SMTP)

    هاست رایگان برای انواع وبسایت

    تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

    همراه شما هستیم

    در خصوص سفارش یا استفاده از سرویس‌ها سوالی دارید؟
    تلفن واحد فروش:
    ۰۲۵-۳۳۵۵۷۶۱۹ (روزهای کاری ۹ الی ۱۷)
    تلفن واحد فروش: ۳۳۵۵۷۶۱۹-۰۲۵ (روزهای کاری ۹ الی ۱۷)