برای مدیران سیستم تازهکار و باتجربه، دستور sort یک ابزار قدرتمند و چندمنظوره قابل توجه است.
این دستور روشی کارآمد برای سازماندهی محتوای فایل در اکوسیستم گسترده لینوکس ارائه میدهد. این یک دستور همهکاره است که میتوانید در سناریوهای مختلفی مانند مرتبسازی خطوط در یک فایل، استخراج ورودیهای تکراری یا مرتبسازی مجدد دادهها به صورت معکوس استفاده کنید.
در این راهنمای جامع، ما نحوه استفاده از دستور sort برای بهینهسازی گردش کار شما را بررسی خواهیم کرد. همچنین کاربردها را با ۹ مثال عملی که انعطافپذیری این ابزار را نشان میدهد، برجسته خواهیم کرد.
بیایید با مروری بر دستور sort شروع کنیم.
دستور sort چیست؟
بسیاری از کاربران sort را به عنوان یک ابزار اساسی برای دستکاری متن در نظر میگیرند. با این حال، بررسی عمیقتر قابلیتهای این ابزار نشان میدهد که گزینهای عالی برای بهینهسازی مدیریت محتوای فایل است.
دستور sort که در یونیکس و بسیاری از سیستمعاملهای شبه یونیکس استفاده میشود، به کاربران اجازه میدهد محتویات فایل را از طریق معیارهای مختلف، از جمله به ترتیب الفبایی، عددی و حتی بر اساس نام ماه، مستقیماً از ورودی استاندارد یا درون یک فایل ورودی مرتب کنند.
به طور کلی، دستور sort در سناریوهای زیر مفید است:
– زمانی که به یک برنامه خط فرمان استاندارد نیاز دارید که خطوط ورودی خود را چاپ کند.
– زمانی که نیاز به مرتبسازی مجدد محتویات یک فایل متنی، خط به خط دارید.
– مرتبسازی به ترتیب الفبایی (A تا Z)، به ترتیب معکوس، بر اساس عدد و بر اساس ماه.
– زمانی که نیاز دارید همه محتویات را به عنوان ASCII در نظر بگیرید و آنها را بر اساس مقدار ASCII مرتب کنید.
نحو دستور Sort در لینوکس
دستور sort لینوکس محتویات فایل را بر اساس اولین کاراکتر هر خط به ترتیب خاصی مرتب میکند. نحو دستور sort لینوکس به شرح زیر است:
sort [گزینهها] نام_فایل
در اینجا:
گزینهها پرچمهایی هستند که رفتار پیشفرض مرتبسازی را تغییر میدهند.
نام_فایل یک فایل متنی است که میخواهید مرتب کنید.
توجه: اگر دستور sort را بدون مشخص کردن هیچ گزینهای اجرا کنید، محتویات فایل را بر اساس قوانین پیشفرض تنظیم شده توسط محل جاری نمایش میدهد.
قوانین مرتبسازی عبارتند از:
– خطوطی که با یک عدد شروع میشوند قبل از خطوطی که با یک حرف شروع میشوند قرار میگیرند. اینها به ترتیب صعودی عددی، از ۱ تا ۱۰ مرتب میشوند.
– خطوطی که با حروف شروع میشوند به ترتیب الفبایی صعودی، از A تا Z مرتب میشوند.
گزینههای Sort در لینوکس
دستور sort در لینوکس با مجموعهای از گزینهها همراه است که به شما امکان میدهد فرآیند مرتبسازی را مطابق با نیازهای خود سفارشی کنید. در اینجا برخی از پرکاربردترین گزینهها آمده است:
این گزینهها را میتوان برای دستیابی به رفتارهای مرتبسازی پیچیده با هم ترکیب کرد.
به عنوان مثال، میتوانید یک فایل را به صورت عددی و به ترتیب معکوس مرتب کنید در حالی که حروف بزرگ و کوچک را نادیده میگیرید، یا بر اساس یک کلید خاص مرتب کنید و در عین حال ورودیهای تکراری را حذف کنید.
این تنوع دستور sort آن را به ابزاری قدرتمند در پردازش متن و دستکاری دادهها در محیطهای لینوکس تبدیل میکند.
۹ مثال از دستور Sort در لینوکس
حالا که ایده خوبی از نحو استاندارد دستور sort دارید، بیایید این دستور را در عمل ببینیم. اما ابتدا، نگاهی به پیشنیازها بیندازیم.
پیشنیازها
قبل از شروع، اطمینان حاصل کنید که موارد زیر را دارید:
– یک سیستم که یک توزیع اصلی لینوکس را اجرا میکند
– یک حساب کاربری با امتیازات sudo
۱: مرتبسازی متن به ترتیب الفبایی
دستور زیر را برای مرتبسازی خطوط یک فایل متنی به ترتیب الفبایی اجرا کنید:
sort filename.txt
حالا، دستور زیر را اجرا کنید:
sort filename.txt
این دستور خطوط filename.txt را به ترتیب الفبایی مرتب میکند و خروجی مرتب شده را در ترمینال نمایش میدهد.
۲: مرتبسازی عددی
اگر در فایل خود اعداد دارید و میخواهید آنها را به صورت عددی مرتب کنید، دستور زیر را اجرا کنید:
sort -n numbers.txt
محتویات زیر فایل را در نظر بگیرید که ترتیب اصلی اعداد در فایل را نشان میدهد.
برای مرتب کردن این اعداد، دستور زیر را اجرا کنید:
sort -n numbers.txt
این دستور خطوط numbers.txt را به صورت عددی مرتب میکند و خروجی مرتب شده را در ترمینال نمایش میدهد.
۳: مرتبسازی معکوس
میتوانید محتویات یک فایل را به ترتیب معکوس (چه الفبایی و چه عددی) با اضافه کردن پرچم -r به دستور sort با نحو زیر مرتب کنید:
sort -r filename.txt
همانطور که میبینید، محتویات فایل نامها را به ترتیب اصلی نشان میدهد.
حالا، دستور زیر را برای مرتبسازی معکوس لیست بالا اجرا کنید:
sort -r filename.txt
همانطور که میبینید، این دستور خطوط را در filename.txt به ترتیب الفبایی معکوس (Z تا A) مرتب میکند.
به طور مشابه، دستور زیر را برای مرتب کردن محتویات یک فایل به ترتیب عددی معکوس اجرا کنید:
sort -nr numbers.txt
این دستور خطوط را در numbers.txt به ترتیب نزولی عددی مرتب میکند.
۴: مرتبسازی بر اساس مقادیر منحصر به فرد
یک استفاده عالی از دستور sort، مرتب کردن یک فایل و حذف ورودیهای تکراری است. این اطمینان حاصل میکند که هر خط در خروجی منحصر به فرد است.
برای این کار، دستور زیر را اجرا کنید:
sort -u filename.txt
تصویر زیر را در نظر بگیرید که محتویات فایل را به ترتیب اصلی نشان میدهد:
حالا دستور زیر را اجرا کنید که دادهها را بر اساس خطوط منحصر به فرد مرتب میکند:
sort -u filename.txt
اینجا خروجی دستور است
۵: مرتبسازی بر اساس ستون خاص
میتوانید از دستور sort با فایلهایی که حاوی چندین فیلد داده هستند و در سطرها و ستونها سازماندهی شدهاند، استفاده کنید. میتوانید دستور زیر را برای مرتب کردن یک فایل بر اساس یک ستون اجرا کنید.
نحو دستور به شرح زیر است:
sort -k[شماره ستون] [نام فایل]
اینها محتویات فایل آزمایشی هستند:
حالا، دستور نمونه زیر را در نظر بگیرید که فایل آزمایشی را بر اساس محتویات ستون دوم دادهها مرتب میکند:
sort -k2 filename.txt
این دستور numbers.txt را بر اساس ستون دوم مرتب میکند و آن ورودیها را به عنوان اعداد در نظر میگیرد.
همچنین میتوانید از پرچم -n برای مرتبسازی عددی و پرچم -r برای مرتبسازی معکوس استفاده کنید.
۶: مرتبسازی بر اساس ماه
وقتی فایل شما حاوی نامهای ماه است و میخواهید آنها را به ترتیب زمانی مرتب کنید، دستور زیر را اجرا کنید:
sort -M months.txt
محتویات زیر فایل آزمایشی را در نظر بگیرید:
حالا، دستور زیر را برای مرتب کردن دادهها بر اساس ماهها اجرا کنید:
sort -M months.txt
۷: مرتبسازی واحدهای قابل خواندن توسط انسان
اگر فایل شما حاوی اعدادی با واحدها (مانند K برای هزارها، M برای میلیونها) است، میتوانید از دستور sort برای مرتب کردن محتویات استفاده کنید در حالی که فرمت قابل خواندن توسط انسان ورودیها را حفظ میکنید:
تصویر زیر را در نظر بگیرید که دادهها را در فرمت مرتب نشده نشان میدهد:
حالا، دستور زیر را برای مرتب کردن دادهها اجرا کنید:
sort -h sizes.txt
همانطور که میبینید، این دستور واحدهای قابل خواندن توسط انسان را هنگام مرتبسازی دادهها در نظر میگیرد.
۸: نادیده گرفتن حروف بزرگ و کوچک هنگام مرتبسازی
به طور پیشفرض، دستور sort حالت حرف اول خطوط را در نظر میگیرد. با این حال، میتوانید بدون در نظر گرفتن حالت (بزرگ یا کوچک) متن مرتب کنید با اضافه کردن پرچم -f در نحو زیر:
sort -f filename.txt
فایل آزمایشی مرتب نشده زیر را در نظر بگیرید:
دستور زیر را برای مرتب کردن دادهها بدون توجه به حالت حروف اجرا کنید:
sort -f filename.txt
۹: مرتب کردن محتویات و خروجی به فایل دیگر
یک نیاز عملیاتی رایج، مرتب کردن یک فایل و ذخیره خروجی مرتب شده در فایل دیگر است. نحو دستور در این سناریو به شرح زیر خواهد بود:
sort filename.txt -o sorted_filename.txt
فایل آزمایشی زیر را در نظر بگیرید:
اکنون دستور زیر را برای مرتب کردن محتویات فایل آزمایشی و ذخیره خروجی در فایل دیگر اجرا خواهیم کرد:
sort filename.txt -o sorted_filename.txt
ما توصیه میکنیم از دستور cat برای مشاهده و تأیید محتویات فایل جدید استفاده کنید.
نتیجهگیری
دستور sort در لینوکس یک ابزار ضروری برای دستکاری متن و داده است. این دستور طیف گستردهای از گزینهها را برای تنظیم فرآیند مرتبسازی مطابق با نیازهای شما ارائه میدهد. چه برای سازماندهی دادهها به ترتیب الفبایی، تمایز بین حروف بزرگ و کوچک، یا مدیریت دقیق فایل اصلی، دستور sort انعطافپذیری و دقت لازم برای مدیریت مؤثر دادهها را فراهم میکند.