هیچ محصولی در سبد خرید وجود ندارد.

آموزش جامع کار با فایلهای متنی در لینوکس شامل مشاهده، جستجو، ویرایش، مقایسه و فیلتر دادهها با دستورات cat، grep، sed و awk.
جدول محتوا [نمایش]
لینوکس به دلیل ماهیت خط فرمانی خود، ابزارهای قدرتمندی برای مدیریت و کار با فایلهای متنی در اختیار کاربران قرار میدهد. این ابزارها برای مشاهده، ویرایش، جستجو، مقایسه و پردازش فایلهای متنی طراحی شدهاند. در این جزوه به صورت جامع، تمامی دستورات پرکاربرد و نکات مرتبط با فایلهای متنی بررسی خواهد شد.
آموزش لینوکس از مقدماتی تا پیشرفته در سایت دیزاین مشهد
catشرح: دستور cat برای نمایش محتویات فایلها، ایجاد فایلهای جدید و ترکیب چندین فایل استفاده میشود. یکی از ویژگیهای این دستور، نمایش سریع فایلهای متنی کوتاه است.
فرمت دستور:
cat [گزینهها] [نام فایل]مثالهای کاربردی:
# نمایش یک فایل
cat file.txt
# ترکیب دو فایل و نمایش نتیجه
cat file1.txt file2.txt
# ایجاد یک فایل متنی جدید
cat > newfile.txt
Hello, this is a new file.
(Ctrl + D برای پایان ورودی)
نکته: اگر فایل بسیار بزرگ باشد، استفاده از cat باعث ایجاد شلوغی در ترمینال میشود. در این موارد از دستورات دیگری مانند less یا more استفاده کنید.
moreشرح: more برای نمایش محتوای فایل به صورت صفحهبهصفحه استفاده میشود؛ زمانی مفید است که فایل طولانی باشد.
فرمت دستور:
more [نام فایل]مثالهای کاربردی:
# نمایش صفحه به صفحه
more file.txt
# شروع نمایش از خط خاص
more +5 file.txt
کلیدهای مهم:Space (صفحه بعد)، b (صفحه قبل)، q (خروج)
lessشرح: less مشابه more است اما قابلیتهای بیشتری برای پیمایش دارد و امکان جستجو هم میدهد.
فرمت دستور:
less [نام فایل]مثالهای کاربردی:
# نمایش صفحهبهصفحه
less file.txt
# جستجوی یک کلمه خاص در حالت less
/ pattern
کلیدها:Space (صفحه بعد)، b (صفحه قبل)، / (جستجو)، n (مورد بعدی جستجو)، q (خروج)
grepشرح: grep ابزاری برای جستجوی الگوها (Pattern) در فایلها یا خروجی دستورات است؛ بسیار قدرتمند و انعطافپذیر.
فرمت دستور:
grep [گزینهها] "الگو" [نام فایل]مثالهای کاربردی:
# جستجوی یک کلمه در یک فایل
grep "error" log.txt
# جستجو بدون توجه به بزرگی/کوچکی حروف
grep -i "error" log.txt
# جستجوی بازگشتی در همه فایلهای یک دایرکتوری
grep -r "function" /path/to/directory
# نمایش شماره خطها
grep -n "error" log.txt
# شمارش تعداد تکرار الگو
grep -c "pattern" file.txt
گزینههای مهم:-i (Case-insensitive)، -r (بازگشتی)، -n (شماره خط)، -v (نمایش خطوط فاقد الگو)
awkشرح: awk برای پردازش و تحلیل فایلهای متنی است؛ دادهها را خطبهخط خوانده و میتواند فیلتر/محاسبه/چاپ کند.
فرمت دستور:
awk 'عملیات' [نام فایل]مثالهای کاربردی:
# نمایش ستون اول
awk '{print $1}' file.txt
# نمایش ردیفهایی که ستون دوم برابر مقدار خاصی است
awk '$2 == "value" {print $0}' file.txt
# جمع کردن اعداد ستون سوم
awk '{sum += $3} END {print sum}' file.txt
کلیدهای مهم:{print $1} (ستون اول)، END {print ...} (اجرای نهایی)، $0 (کل ردیف)
sedشرح: sed ویرایشگر جریان متنی برای ویرایش سریع و خودکار فایلها (جایگزینی/حذف).
فرمت دستور:
sed 'عملیات' [نام فایل]مثالهای کاربردی:
# جایگزینی متن در کل فایل
sed 's/old-text/new-text/g' file.txt
# حذف خطوط شامل یک الگو
sed '/pattern/d' file.txt
کلیدهای مهم:s (جایگزینی)، g (در همه موارد)، d (حذف خط)
nanoشرح: nano یک ویرایشگر ساده و سبک.
فرمت دستور:
nano [نام فایل]مثالهای کاربردی:
# باز کردن فایل برای ویرایش
nano file.txt
# ایجاد فایل جدید
nano newfile.txt
میانبرها:Ctrl + O (ذخیره)، Ctrl + X (خروج)
vimشرح: vim یک ویرایشگر پیشرفته با دو حالت «ویرایش» و «دستوری».
فرمت دستور:
vim [نام فایل]مثالهای کاربردی:
# باز کردن فایل
vim file.txt
# ورود به حالت ویرایش
i
# خروج از حالت ویرایش
Esc
# ذخیره (بدون خروج)
:w
# خروج
:q
# ذخیره و خروج
:wq
# خروج بدون ذخیره
:q!
touchشرح: ایجاد فایلهای خالی یا بهروزرسانی زمان آخرین ویرایش.
فرمت دستور:
touch [نام فایل]مثالها:
# ایجاد فایل جدید
touch newfile.txt
# بهروزرسانی زمان آخرین دسترسی فایل موجود
touch existingfile.txt
echoشرح: نوشتن متن در فایل یا نمایش در خروجی ترمینال.
فرمت دستور:
echo "متن" > [نام فایل]مثالها:
# نوشتن متن در فایل (Overwrite)
echo "Hello, World!" > file.txt
# افزودن متن به انتهای فایل (Append)
echo "New line" >> file.txt
headشرح: نمایش خطوط ابتدایی (پیشفرض ۱۰ خط).
فرمت دستور:
head [گزینهها] [نام فایل]مثالها:
# ۱۰ خط اول
head file.txt
# تعداد مشخصی از خطوط
head -n 5 file.txt
tailشرح: نمایش خطوط انتهایی (پیشفرض ۱۰ خط) و قابلیت نمایش زنده.
فرمت دستور:
tail [گزینهها] [نام فایل]مثالها:
# ۱۰ خط آخر
tail file.txt
# تعداد مشخصی از خطوط آخر
tail -n 20 file.txt
# نمایش زنده (Real-time)، مناسب برای لاگها
tail -f log.txt
wcشرح: شمارش خطوط، کلمات و کاراکترها.
فرمت دستور:
wc [گزینهها] [نام فایل]مثالها:
# خطوط، کلمات و کاراکترها
wc file.txt
# فقط خطوط
wc -l file.txt
# فقط کلمات
wc -w file.txt
# فقط کاراکترها
wc -c file.txt
diffشرح: مقایسه دو فایل و نمایش تفاوتها؛ میتواند خطوط موجود در یکی و غایب در دیگری را نشان دهد.
فرمت دستور:
diff [گزینهها] [فایل1] [فایل2]مثالها:
# مقایسه دو فایل
diff file1.txt file2.txt
# مقایسه بازگشتی دو دایرکتوری
diff -r dir1/ dir2/
# ذخیره خروجی تفاوتها در یک فایل
diff file1.txt file2.txt > differences.txt
نکته: خروجی diff از علامتهای < و > برای نشاندادن خطوط موجود در فایل اول یا دوم استفاده میکند.
cmpشرح: مقایسه بیتی دو فایل و گزارش اولین تفاوت.
فرمت دستور:
cmp [فایل1] [فایل2]مثالها:
# مقایسه دو فایل
cmp file1.txt file2.txt
# نمایش اولین تفاوت از نظر بایت و خط
cmp -l file1.txt file2.txt
شرح: ارسال خروجی یک دستور بهعنوان ورودی دستور دیگر با استفاده از |.
# جستجوی یک کلمه در خروجی cat
cat file.txt | grep "error"
# شمارش خطوط شامل کلمه
grep "error" file.txt | wc -l
# فیلتر خطوط فاقد یک الگو
cat file.txt | grep -v "pattern"
# مانیتورینگ لاگ و فیلتر خطاها
tail -f /var/log/syslog | grep "error"
با استفاده از cat محتویات دو فایل را به هم بچسبانید و در یک فایل جدید ذخیره کنید.
در یک فایل بزرگ با استفاده از grep به دنبال کلمه "error" بگردید و خطوطی که شامل آن نیستند را با sed حذف کنید.
با استفاده از awk ستون دوم یک فایل متنی را نمایش دهید و جمع ستون سوم را محاسبه کنید.
دو فایل متنی را با استفاده از diff مقایسه کنید و تفاوتها را در یک فایل جدید ذخیره کنید.
هدف: با استفاده از tail -f و grep، یک اسکریپت بنویسید که فایلهای log سرور را بهصورت زنده مانیتور کند و هر زمان که خطایی رخ داد، آن را در یک فایل جداگانه ثبت کند.
استفاده از tail -f برای مانیتور کردن فایل log.
فیلتر کردن خطوط شامل "error" با grep.
ذخیره خطوط خطا در یک فایل جداگانه.
این مقااه یک راهنمای جامع برای کار با فایلهای متنی در لینوکس بود. با استفاده از دستورات معرفیشده و تمرینهای پیشنهادی، میتوانید مهارتهای عملی خود را در مدیریت فایلهای متنی تقویت کنید. لینوکس ابزارهای قدرتمندی برای پردازش و مدیریت متن فراهم میکند و تسلط بر آنها پایهگذار مهارتهای پیشرفتهتر مدیریت سیستم و برنامهنویسی است.