دستورات پیشرفته sort در لینوکس پرینت


 

# 🎯 دستورات پیشرفته `sort` در لینوکس
### مرتب‌سازی‌های هوشمند، ترکیبی، و ستونی برای کاربران حرفه‌ای لینوکس

---

## 🔹 ۱. مرتب‌سازی چند سطحی (چند کلیدی)

فرض کن فایل زیر رو داریم:

```
ali 20
zahra 18
ali 15
reza 19
```

مرتب‌سازی ابتدا بر اساس نام، سپس بر اساس سن (عدد):

```bash
sort -k1,1 -k2,2n file.txt
```

- `-k1,1`: مرتب‌سازی بر اساس ستون اول (اسم)
- `-k2,2n`: مرتب‌سازی عددی ستون دوم (سن)

---

## 🔹 ۲. مرتب‌سازی فایل CSV (با جداکننده کاما)

مثال فایل `data.csv`:

```
name,score
ali,85
zahra,90
reza,75
```

مرتب‌سازی عددی بر اساس ستون دوم:

```bash
sort -t',' -k2,2n data.csv
```

- `-t','`: مشخص‌کردن جداکننده (در اینجا کاما)

---

## 🔹 ۳. مرتب‌سازی با حذف خطوط تکراری (`-u`)

```bash
sort -u file.txt
```

> اول مرتب‌سازی می‌کنه، بعد خطوط تکراری رو حذف می‌کنه.
توجه: برای حذف دقیق‌تر بهتره با `uniq` ترکیب بشه.

---

## 🔹 ۴. مرتب‌سازی حساس به locale (برای زبان فارسی یا دیگر زبان‌ها)

```bash
LC_ALL=C sort file.txt
```

یا:

```bash
LC_COLLATE=C sort file.txt
```

> مفید برای مرتب‌سازی استاندارد (مثل A-Z بدون درهم‌ریختگی حروف خاص)

---

## 🔹 ۵. مرتب‌سازی به همراه نمایش شماره خط اصلی

```bash
nl file.txt | sort -k2
```

> برای مرتب‌سازی بدون از بین بردن موقعیت اولیه در فایل اصلی

---

## 🔹 ۶. مرتب‌سازی بر اساس کاراکتر خاص در ستون

فرض کن فایل اینطوریه:

```
ali:20
reza:18
zahra:25
```

مرتب‌سازی بر اساس عدد:

```bash
sort -t':' -k2,2n file.txt
```

---

## 🔹 ۷. استفاده از sort در اسکریپت با فایل‌های بزرگ

```bash
sort -T /tmp -k2,2n bigfile.txt
```

> `-T /tmp` مشخص می‌کنه که فایل‌های موقتی مرتب‌سازی در `/tmp` ساخته بشن؛ مفید برای فایل‌های حجیم.

---

## 🔹 ۸. ذخیره فایل مرتب‌شده در همان فایل (با `-o`)

```bash
sort file.txt -o file.txt
```

> بدون نیاز به `> newfile.txt`، خروجی رو مستقیماً در همون فایل می‌نویسه.

---

## 💡 نکات نهایی برای مرتب‌سازی‌های حرفه‌ای:

| دستور | کاربرد |
|--------|--------|
| `-kX,Y` | مرتب‌سازی از ستون X تا Y |
| `-tSEP` | تعیین جداکننده دلخواه (مثل `:`, `,`, `|`) |
| `-n` | مرتب‌سازی عددی |
| `-r` | ترتیب معکوس |
| `-u` | حذف تکراری‌ها |
| `-o` | نوشتن خروجی روی همان فایل |

---

## ✅ مثال ترکیبی پیشرفته:

مرتب‌سازی یک فایل CSV بر اساس ستون دوم عددی، به‌صورت معکوس، ذخیره روی خودش:

```bash
sort -t',' -k2,2nr scores.csv -o scores.csv
```

 


آیا این پاسخ به شما کمک کرد؟

  • 0
« برگشت