مواردی که باید مرتب شوند باید به نحوی تعریف شوند
داده ها در یک فایل متنی لینوکس با دستور مرتب سازی بر اساس مرتب سازی می شوند تا زمانی که هر عنصر به نوعی محدود شده باشد. اغلب، کاما به عنوان جداکننده برای اطلاعات محدود شده استفاده می شود.
قوانین اصلی برای مرتب سازی
فرمان مرتبسازی خطوط را در یک فایل متنی مرتب می کند تا براساس عددی و حروف الفبا مرتب شوند. قوانین پیش فرض برای دستور مرتب سازی عبارتند از:
- متن که با عدد شروع می شود قبل از متن که با یک حرف شروع می شود، ظاهر می شود. شماره های پایین تر مرتب کردن بر اساس اول.
- متن که با یک حرف که در الفبای زودتر ظاهر می شود شروع می شود که اولین حرف ورودی های متن های دیگر قبل از متن است که با یک حرف که در الفبای بعد ظاهر می شود مرتب شده است.
- از کجا متن شروع می شود با حروف بزرگ و کوچک از همان نامه، نمونه کوچکتر ابتدا مرتب شده است.
مرتب کردن یک فایل متنی
برای مرتب سازی خطوط در یک فایل لینوکس محدود شده، از دستور مرتب سازی مانند این استفاده می کنید:
$ مرتب سازی -k2 test.txtکه فایل "test.txt" را با توجه به کاراکترهای شروع از ستون دوم مرتب می کند (K2 به ستون دوم اشاره دارد). فرض کنید محتوای فایل ورودی است:
1، جاستین تیمبرلیک، عنوان 545، قیمت 7.30 $ 2، تیلور سویفت، عنوان 723، قیمت 7.90 $، 3، مایکل جگر، عنوان 610، قیمت 7.90 $، 4، Lady Gaga، عنوان 118، قیمت 7.30 $ 5، جانی کیسی، عنوان 482، قیمت 6.50 $ 6، الویس پریسلی، عنوان 335، قیمت 7.30 دلار 7، جان لنون، عنوان 271، قیمت 7.90 $ 8، مایکل جکسون، عنوان 373، قیمت 5.50 $از آنجا که ستون دوم در این مثال شامل نام و نام خانوادگی است، خروجی مرتب شده توسط اولین حرف از نام هر فرد در ستون دوم مرتب شده است. الویس، جان، جانی، جاستین، بانوی، مایکل، مایکل و تیلور ، همانطور که در زیر نشان داده شده است:
6، الویس پریسلی، عنوان 335، قیمت 6.30 دلار 7، جان لنون، عنوان 271، قیمت 7.90 $، 5، جانی کیس، عنوان 482، قیمت 6.50 $ 1، جاستین تیمبرلیک، عنوان 545، قیمت 6.30 $ 4، Lady Gaga، عنوان 118، قیمت 6.30 $ 8، مایکل جکسون، عنوان 373، قیمت 5.50 دلار 3، مایکل جگر، عنوان 610، قیمت 7.90 دلار 2، تیلور سویفت، عنوان 723، قیمت 7.90 دلاراگر فایل را با -k3 مرتب کنید (با استفاده از مقادیر خط شروع از ستون 3-ستون شماره عنوان) خروجی:
4، Lady Gaga، عنوان 118، قیمت 6.30 $ 7، جان لنون، عنوان 271، قیمت 7.90 $، 6، الویس پریسلی، عنوان 335، قیمت 6.30 $ 8، مایکل جکسون، عنوان 373، قیمت 5.50 $ 5، جانی کیس، عنوان 482، قیمت 6.50 $ 1، جاستین تیمبرلیک، عنوان 545، قیمت 6.30 دلار 3، مایکل جگر، عنوان 610، قیمت 7.90 دلار 2، تیلور سویفت، عنوان 723، قیمت 7.90 دلارو
$ مرتب سازی -k4 test.txtیک لیست بر اساس قیمت ایجاد می کند:
مایکل جکسون، عنوان 373، قیمت 5.50 $ 1، جاستین تیمبرلیک، عنوان 545، قیمت 6.30 $ 4، Lady Gaga، عنوان 118، قیمت 6.30 $ 6، الویس پریسلی، عنوان 335، قیمت 6.30 $ 5، جانی کیسی، عنوان 482، قیمت 6.50 $ 2، تیلور سویفت، عنوان 723، قیمت 7.90 $، 3، مایکل جگر، عنوان 610، قیمت 7.90 $ 7، جان لنون، عنوان 271، قیمت 7.90 $معکوس كردن مرتب كردن
گزینه -r مرتب سازی را تغییر می دهد. به عنوان مثال، با استفاده از نتایج بالا:
$ مرتب سازی -k4 -r test.txtبازده:
7، جان لنون، عنوان 271، قیمت 7.90 $ 3، مایکل جگر، عنوان 610، قیمت 7.90 $ 2. تیلور سویفت، عنوان 723، قیمت 7.90 $، 5، جانی کیس، عنوان 482، قیمت 6.50 $، 6، الویس پریسلی، عنوان 335، قیمت 6.30 $ 4، Lady Gaga، عنوان 118، قیمت 6.30 دلار 1، جاستین تیمبرلیک، عنوان 545، قیمت 6.30 دلار 8، مایکل جکسون، عنوان 373، قیمت 5.50 دلارذخیره یک فایل مرتب شده
مرتب سازی یک فایل آن را ذخیره نمی کند. برای ذخیره فهرست مرتب شده در یک فایل، از اپراتور هدایتگر استفاده می کنید:
مرتب سازی -k4 -r test.txt> test_new.txtجایی که "test_new.txt" فایل جدید است.
مرتب سازی خروجی جریان
شما همچنین می توانید دستور مرتب سازی را به خروجی یک جریان اعمال کنید، مانند اپراتور لوله:
$ ls -al | مرتب سازی -r -n -k5این نوع خروجی فهرست فایل تولید شده توسط دستور ls را بر اساس اندازه فایل، با شروع از بزرگترین فایل ها می گیرد. اپراتور -n به جای الفبایی، مرتب سازی عددی را مشخص می کند.