sort
فهرست
مقدمه
فرض کنید فایلی پر از اسم دارید و میخواهید اسامی را بر اساس حروف الفبا مرتب کنید در همچنین شرایطی استفاده از ابزار sort بهترین کار است. شما با ابزار sort میتوانید در کوتاه ترین زمان ممکن فایل خود را به شکل مرتب شده ببنید یا با ترکیب ابزار با اوپراتور های خروجی فایل جدیدی از فایل کنونی بسازید.
مرتب سازی فایل
اگر دستور sort را قبل از هر فایل قرار دهید به شکل خودکار محتویات فایل شما به ترتیب حروف الفبا یا اعداد نمایش داده خواهد شد.اولویت با اعداد است !!! برای درک بهتر این موضوع به مثال زیر توجه کنید.
$ cat test.txt
# ali
amir
hasan
fateme
nasrin
narges
homayon
reza
taha
3
5
8
95
32
1
2
$ sort test.txt
# 1
2
3
32
5
8
95
ali
amir
fateme
hasan
homayon
narges
nasrin
reza
taha
مرتب سازی فایل به صورت برعکس
اگر خواستید که فایل خود را به صورت برعکس مرتب کنید از سوییچ -r استفاده کنید.
$ cat test.txt
# ali
amir
hasan
fateme
nasrin
narges
homayon
reza
taha
3
5
8
95
32
1
2
$ sort -r test.txt
# taha
reza
nasrin
narges
homayon
hasan
fateme
amir
ali
95
8
5
32
3
2
1
مرتب سازی فایل های عددی به ترتیب اعداد کوچک به بزرگ
اگر فایلی پر از اعداد مختلف دارید و میخواهیدآن را مرتب کنید بهترین کار استفاده از سوییچ -n هست. با استفاده از این سوییچ میتوانید اعدادخود را به ترتیب از کوچک به بزرگ مرتب کنید
$ cat test.txt
# 35
25
15
12
1
2
3256
63
35
3
65
4
5
988
2111
5635
$ sort -n test.txt
# 1
2
3
4
5
12
15
25
35
35
63
65
988
2111
3256
5635
مرتب سازی فایل های عددی به ترتیب اعداد بزرگ به کوچک
اگر میخواهید که فایل عددی خود را به ترتیب اعداد بزرگ به کوچک مرتب کنید میتوانید از ترکیب سوییچ -nr استفاده کنید.
$ cat test.txt
# 35
25
15
12
1
2
3256
63
35
3
65
4
5
988
2111
5635
$ sort -nr test.txt
# 5635
3256
2111
988
65
63
35
35
25
15
12
5
4
3
2
1
گرفتن خروجی از فایل مرتب شده به فایل جدید
اگر فایلی را با ابزار مرتب کرده اید و میخواهید که خروجی را به فایل جدیدی منتقل کنید میتوانید از سوییچ -o یا اوپراتور خروجی استفاده کنید. لازم به ذکر است که استفاده از اوپراتور خروجی یا سوییچ تفاوتی در خروجی نخواهند داشت. پس بسته به راحتی خود از یکی از آن ها استفاده کنید.
$ sort test.txt > Newfile.txt
Or
$ sort -o test.txt Newfile.txt
چک کردن مرتب بودن فایل و نمایش خطوط نامرتب
اگر فایلی دارید که در مرتب بودن آن شک دارید میتوانید از سوییچ -c استفاده کنید. در صورتی که فایل نامرتب باشد خط یا کلماتی که باعث نامرتب شدن فایل شدند را برای شما پرینت میکند.
$ cat test.txt
# Amirhosein
Jadi
Sina
marjan
$ sort -c test.txt
# sort: test.txt:4: disorder: marjan
مرتب سازی فایل و حذف کلمات تکراری
اگر در فایل کلمات تکرار شده دارید و نیاز دارید که بعد از مرتب سازی فایل آن ها حذف شوند از سوییچ -u استفاده کنید. این سوییچ به جز مرتب سازی فایل های شما کلمات تکراری را هم حذف میکند.
$ cat test.txt
# Bita
Amirhosein
Jadi
Jadi
marjan
Sina
$ sort -u test.txt
# Amirhosein
Bita
Jadi
marjan
Sina