حذف خطوط تکراری در لینوکس پرینت


# حذف خطوط تکراری در لینوکس
### مرتب‌سازی و پاکسازی فایل‌های متنی با ابزارهای خط فرمان

در پردازش فایل‌های متنی، ممکن است با خطوط تکراری روبه‌رو شویم؛ مخصوصاً در لیست‌ها، گزارش‌ها، یا خروجی برنامه‌ها. لینوکس ابزارهای ساده و قدرتمندی برای **شناسایی و حذف خطوط تکراری** دارد.

---

## ✅ روش 1: استفاده از دستور `uniq`

```bash
uniq input.txt
```

### نکته مهم:
`uniq` فقط **خطوط تکراریِ پشت‌سر‌هم** را شناسایی و حذف می‌کند. برای عملکرد صحیح باید ابتدا فایل را **مرتب‌سازی** کرد.

### حذف تکراری‌ها به‌صورت کامل:

```bash
sort input.txt | uniq
```

---

## 📂 ذخیره خروجی در فایل جدید

```bash
sort input.txt | uniq > cleaned.txt
```

---

## 🔢 شمارش تعداد تکرار هر خط:

```bash
sort input.txt | uniq -c
```

### خروجی نمونه:

```
1 apple
3 banana
2 orange
```

---

## ❌ فقط نمایش خطوط تکراری:

```bash
sort input.txt | uniq -d
```

---

## 🆚 فقط نمایش خطوط یکتا (غیرتکراری):

```bash
sort input.txt | uniq -u
```

---

## 🧰 روش 2: استفاده از awk برای حذف خطوط تکراری بدون نیاز به sort

```bash
awk '!seen[$0]++' input.txt
```

- این دستور **خطوط تکراری را از هرجای فایل** (نه فقط پشت سر هم) حذف می‌کند.
- مرتب‌سازی لازم نیست.

---

## 🔄 روش 3: با استفاده از `sort -u`

اگر فقط هدف حذف تکراری‌ها و مرتب‌سازی باشد، این ساده‌ترین روش است:

```bash
sort -u input.txt
```

---

## مقایسه سریع دستورات

| دستور | کاربرد |
|--------|--------|
| `uniq` | حذف خطوط تکراری پشت‌سر‌هم |
| `sort | uniq` | حذف تمام خطوط تکراری |
| `sort -u` | مرتب‌سازی + حذف تکراری‌ها |
| `awk '!seen[$0]++'` | حذف تکراری از کل فایل بدون نیاز به مرتب‌سازی |
| `uniq -d` | فقط خطوط تکراری |
| `uniq -u` | فقط خطوط غیرتکراری |

---

## نمونه فایل ورودی

```
apple
banana
apple
orange
banana
banana
```

### خروجی پس از اجرای:
```bash
sort input.txt | uniq
```

```
apple
banana
orange
```

 


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

  • 0
« برگشت