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

مواردی که باید مرتب شوند باید به نحوی تعریف شوند

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

قوانین اصلی برای مرتب سازی

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

مرتب کردن یک فایل متنی

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

$ مرتب سازی -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 به جای الفبایی، مرتب سازی عددی را مشخص می کند.