آموزش دستور sed در لینوکس + (راهنمای کامل)
۱ اسفند ۱۴۰۳
دستور sed یکی از دستوراتی است که در لینوکس از آن استفاده میشود و به عنوان یک دستور قدرتمند برای ویرایش و تغییر متنها از آن استفاده میشود. وظیفه اصلی این دستور عملیاتهای مختلفی همچون جستجو، جایگذاری، افزودن و حذف متن در فایلها است. در این مطلب با دستور sed در لینوکس به صورت کامل آشنا خواهید شد و مثالهای عملی را به روشی ساده توضیح خواهیم داد. با لیارا همراه باشید.
اگر به دنبال آموزشی کامل برای کار کردن با cmd لینوکس هستید مقاله آشنایی با خط فرمان لینوکس را به شما پیشنهاد خواهیم کرد.
در ادامه با آن ها آشنا خواهید شد:
- دستور sed چیست؟
- ویژگی های کلیدی دستور sed
- دستور پایه sed
- کاربرد های دستور sed
- استفادههای پیشرفته از sed
- بررسی عملکرد فایل های بزرگ
- سوالات متدوال
- جمع بندی
دستور sed چیست؟
در مقدمه مقداری از مفهوم دستور sed را معرفی کردهایم. حال میخواهیم به صورت کامل به این دستور بپردازیم. دستور sed یکی از ویرایشگرهایی است که متن را بهصورت خط به خط بررسی و پردازش میکند. دستور sed به شما این قابلیت را میدهد تا محتوای یک فایل را بدون آن که بهصورت مستقیم باز کنید تغییرات لازمه را انجام دهید. دستور sed در اسکریپت نویسی شِل و مدیریت سیستم بسیار کاربرد دارد و برای خودکارسازی کارهای پردازش متن از آن استفاده میشود.
ویژگی های کلیدی دستور sed
- جستجو و جایگزینی تمامی الگوها
- ویرایش فایلها بهصورت (In-place)
- فیلتر کردن و ویرایش کردن متن
- پشتیبانی از عبارات منظم (Regular Expressions)
- عملیات چند خطی
دستور پایه sed
دستور sed بهصورت ساختار شده عمل میکند و دارای سه بخش اصلی و مهم است که در ادامه به آن خواهیم پرداخت.
- تعیین گزینههای دستور
- فایلهای وروردی که باید آنها را پردازش کرد.
- اسکریپت که دستورالعملهای ویرایش را تعریف میکند.
در ادامه تمامی اجزای این دستور را بهصورت کامل توضیح خواهیم داد.

گزینه های دستور (Command Options)
- این بخش رفتار کلی دستور sed را مشخص میکند.
- مثالهایی از گزینه های پرکاربرد:
-i
: ویرایش فایل به صورت Overwrite فایل اصلی.-n
: جلوگیری از نمایش خودکار خروجی و فقط نمایش خطوطی که صریحاً درخواست شدهاند.-e
: امکان نوشتن چندین اسکریپت و اعمال آنها به صورت متوالی.
اسکریپت (Script)
- این قسمت شامل دستورالعملهای ویرایش متنی است.
- دستورات اسکریپت شامل عملیات زیر میباشد:
- جایگزینی (s): جایگزینی یک الگو با متنی دیگر.
- مثال:
s/hello/hi/
- مثال:
- حذف (d): حذف خطوطی که با یک الگوی مشخص مطابقت دارند.
- مثال:
/pattern/d
- مثال:
- درج (a یا i): اضافه کردن متن قبل یا بعد از خط مورد نظر.
- مثال:
a\ اضافه کردن این متن بعد از خط
- مثال:
- چاپ (p): نمایش خطوطی که با الگوی خاصی مطابقت دارند.
- مثال:
sed -n '/pattern/p' file.txt
- مثال:
- جایگزینی (s): جایگزینی یک الگو با متنی دیگر.
- میتوانید از چندین دستور ویرایشی در یک اسکریپت استفاده کنید و آنها را با
;
از هم جدا کنید.
فایل ورودی (Input File)
- این فایل همان متنی است که دستور sed بر روی آن پردازشهای لازم را انجام میدهد.
- میتوان یک یا چند فایل را مشخص کرد:
- مثال:
sed 's/old/new/' file1.txt file2.txt
- مثال:
- اگر هیچ فایلی تعیین نشود، sed به صورت پیشفرض از ورودی استاندارد (مانند ورودی از کاربر یا یک لوله) استفاده میکند.
با درک این سه بخش اصلی، میتوان بهراحتی عملیات مختلف پردازش متن را با sed انجام داد و آن را به ابزاری قدرتمند در اسکریپتنویسی تبدیل کرد.
ساختار پایه دستور sed بهصورت زیر میباشد.
sed [options] 'script' file
در این ساختار، sed دستور است، options گزینههای دستور و script دستورات ویرایش است و فایلهای موجود را بررسی میکند.
sed [options] 'script' file
با مثال زیر آن را بهتر درک خواهید کرد.
sed 's/hello/world/' sample.txt

در دستور بالا اولین جایی که کلمه “hello” را پیدا بکند، آن را با کلمه “world” عوض خواهد کرد. یعنی فقط اولین “hello” در هر خط تغییر میکند و بقیهی آنها دست نخورده باقی میمانند.
گزینه های پر کاربرد در دستور sed
گزینه | توضیحات | مثال |
---|---|---|
-i | ویرایش فایل به صورت درجا (بدون نیاز به بازنویسی فایل) | sed -i 's/old/new/' file.txt |
-n | جلوگیری از چاپ خودکار هر خط | sed -n '/pattern/p' file.txt |
-e | اجرای چندین دستور به صورت همزمان | sed -e 's/old/new/' -e '/pattern/d' file.txt |
-f | خواندن دستورات از یک فایل | sed -f script.sed file.txt |
-r | استفاده از عبارات منظم توسعهیافته (extended regex) | sed -r 's/old/new/' file.txt |
-E | استفاده از عبارات منظم توسعهیافته (مشابه -r ) | sed -E 's/old/new/' file.txt |
-z | جدا کردن خطوط با کاراکتر NUL (که برای فایلهای باینری استفاده میشود) | sed -z 's/old/new/' file.txt |
-l | مشخص کردن طول خط برای دستور l | sed -l 100 'l' file.txt |
-b | حالت باینری (برای جلوگیری از حذف کاراکترهای CR) | sed -b 's/old/new/' file.txt |
👈🏻بیشتر بخوانید: مدیریت پکیجها در سرور مجازی لینوکس
کاربرد های دستور sed
در ادامه رایج ترین کاربردهای دستور sed را شرح خواهیم داد.
در ابتدا باید یک فایل متنی نمونه با نام file1.txt
را ایجاد کرده و بعد از آن دستور زیر را وارد کنید.
cat > file1.txt
متن زیر را در آن قرار دهید.
Linux is a family of free and open-source operating systems based on the Linux kernel.
Operating systems based on Linux are known as Linux distributions or distros.
Examples include Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.

جستجو و جایگزینی
در دستور زیر، s
عملیات جایگزینی را مشخص میکند و /
بهعنوان جداکننده استفاده میشود. /Linux/
الگوی جستجو است و Unix
رشتهای است که قرار است جایگزین شود.
sed 's/Linux/Unix/' file1.txt
این دستور اولین باری که کلمه “Linux” را در هر خطی پیدا کند، آن را با “Unix” جایگزین میکند.
Output
Unix is a family of free and open-source operating systems based on the Linux kernel.
Operating systems based on Unix are known as Linux distributions or distros.
Examples include Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Unix, and many others.
جایگزینی در هر خط
علامت /g
به دستور sed میگوید که تمام مواردی که یک کلمه یا رشته خاصی دارند و در یک خط تکرار شدهاند را تعویض کند.
در مفهومی سادهتر، وقتی از /g
استفاده میکنید، sed تمام کلمههایی که با الگوی جستجو شما مطابقت دارند را در هر خط تغییر میدهد.
sed 's/Linux/Unix/g' file1.txt
این دستور تمام کلمات “Linux” که در هر خط پیدا میکند را با کله “Unix” جایگزین میکند.
Output
Unix is a family of free and open-source operating systems based on the Unix kernel.
Operating systems based on Unix are known as Unix distributions or distros.
Examples include Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Unix, and many others.
ویرایش درجا
گزینه -i
تمامی تغییرات را مستقیماً فایل اعمال میکند. به عبارت دیگر، فایل اصلی را بدون نیاز به ساخت فایل جدید، با تغییرات جدید جایگزین میکند.
این دستور فایل را مستقیما ویرایش میکند و کلمه “Linux” را با “Unix” در این فایل تغییر میدهد.
اگر از گزینه -i
استفاده نکنید، تمامی تغییرات فقط در خروجی نمایش داده میشود و فایل اصلی هیچگونه تغییری نخواهد کرد. برای اینکه تغییرات در فایل ذخیره شود، باید از گزینه -i
استفاده کنید.
sed -i 's/Linux/Unix/' file1.txt
پاک کردن خطوط
sed '2d' file1.txt
برای حذف خطوط مد نظرتان از دستور sed استفاده کنید. برای این کار میتوانید از یک عبارت خاص برای جستجو استفاده کنید. از دستور زیر استفاده کنید.
sed '2d' file1.txt
این دستور خط دومی که انتخاب کردید را از فایل file1.txt
حذف میکند.
“اگر به دنبال سرور مجازی هستید، میتوانید از خدمات سرور مجازی لیارا بهرهمند شوید که امکانات قدرتمند و پشتیبانی عالی را برای مدیریت آسان و سریع پروژههای شما فراهم میکند.”

Output
Unix is a family of free and open-source operating systems based on the Linux kernel.
Examples include Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Unix, and many others.
با استفاده از گزینه -n
میتوانید جلوی چاپ خودکار همه خطوط را بگیرید و بعد از آن دستور p
را برای چاپ خطوطی که با یک عبارت خاص مطابقت دارند، از آن استفاده کنید.
برای این کار میتوانید از دستور زیر استفاده کنید.
sed -n '1,2p' file1.txt
این دستور خط های بین 1 تا 2 را از فایل file1.txt
چاپ میکند.
Output
Unix is a family of free and open-source operating systems based on the Unix kernel.
Operating systems based on Unix are known as Unix distributions or distros.
با استفاده از دستور sed، میتوانید تمامی خطوطی که یک الگوی خاصی دارند را حذف کنید. برای این کار از /pattern/
برای مشخص کردن الگو و d
برای حذف کردن خطوطی که تشابه دارند استفاده میشود.
برای مثال، دستور زیر خطهایی که کلمه “error” هستند را از فایل حذف میکند.
sed '/kernel/d' file1.txt
این دستور تمام خطهایی که در آن کلمه “kernel” هستند را حذف میکند.
Output
Operating systems based on Unix are known as Unix distributions or distros.
Examples include Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Unix, and many others.
جایگزینی با فایل پشتیبان
دستور زیر تمام مواردی که کلمات “Unix” دارند را با کلمه “Linux” جایگزین میکند و قبل از انجام این تغییرات، یک فایل پشتیبان را به نام file1.txt.bak
از محتوای قبلی فایل ایجاد میکند. گزینه -i.bak
ویرایش درجا را فعال کرده و یک فایل پشتیبان میسازد.
sed -i.bak 's/Unix/Linux/g' file1.txt
Output
Linux is a family of free and open-source operating systems based on the Linux kernel.
Operating systems based on Linux are known as Linux distributions or distros.
Examples include Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.
فایل file1.txt.bak
نسخه پشتیبان فایل اصلی است و به این معنا است که محتوای فایل file1.txt
قبل از تغییرات است. اگر نیاز داشته باشید، میتوانید از این فایل برای برگرداندن تغییرات استفاده کنید.
more file1.txt.bak
Output
Unix is a family of free and open-source operating systems based on the Unix kernel.
Operating systems based on Unix are known as Unix distributions or distros.
Examples include Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Unix, and many others.

جایگزینی تب با فاصله ها
دستور زیر تمامی کاراکترهای تب (tab
) را با چهار فاصله جایگزین میکند.
sed 's/\t/ /g' file1.txt
Output
Linux is a family of free and open-source operating systems based on the Linux kernel.
Operating systems based on Linux are known as Linux distributions or distros.
Examples include Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.
حذف خطوط خالی
دستور زیر تمام خطهای خالی را از فایل file1.txt
حذف میکند:
میتوانید فایل file1.txt
را با استفاده از ویرایشگر متنی vi ویرایش کنید و چند خط خالی به آن اضافه کنید تا این دستور را آزمایش کنید.
sed '/^$/d' file1.txt
چاپ خطوطی که با الگو مطابقت دارند
دستور زیر فقط خطوطی را که شامل کلمه “Ubuntu” هستند از فایل file1.txt
چاپ میکند.
sed -n '/Ubuntu/p' file1.txt
Output
Example includes Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.
استفادههای پیشرفته از sed
در ادامه از موارد پیچیدهتر از دستور sed استفاده خواهیم کرد.
sed -i '2i\This is inserted text.' file1.txt
درج متن قبل از یک خط خاص
دستور زیر متن “This is inserted text” را قبل از خط دوم در فایل file1.txt
ld میگذارد.
sed -i '2i\This is inserted text.' file1.txt
دستور -i
برای ویرایش مستقیم فایل استفاده میشود، و 2i\
باعث میشود که متن قبل از خط دوم فایل درج شود.
Output
Linux is a family of free and open-source operating systems based on the Linux kernel.
This is inserted text.
Operating systems based on Linux are known as Linux distributions or distros.
Example includes Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.
جایگزینی n امین تکرار یک الگو در یک خط
برای جایگزینی اولین، دومین یا n امین تکرار یک الگو در یک خط، میتوانید از فلگهای /1
، /2
و غیره استفاده کنید.
دستور زیر دومین تکرار کلمه “Linux” را با “Unix” در یک خط جایگزین میکند.
sed 's/Linux/Unix/2' file1.txt
Output
Linux is a family of free and open-source operating systems based on the Unix kernel.
This is inserted text.
Operating systems based on Linux are known as Unix distributions or distros.
Examples includes Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.

اضافه کردن متن بعد از یک خط خاص
دستور زیر متن "This is appended text"
را بعد از خط سوم در فایل file1.txt
اضافه میکند.
sed -i '3a\This is appended text.' file1.txt
Output
Linux is a family of free and open-source operating systems based on the Linux kernel.
This is inserted text.
Operating systems based on Linux are known as Linux distributions or distros.
This is appended text.
Example includes Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.
اگر به دنبال آموزشش نحوه نمایش و مرتبسازی فایلها در لینوکس هستید، میتوانید از مقاله دستورهای لینوکس برای مشاهده و مرتبسازی فایلها استفاده کنید.
جایگزینی متن در ابتدای یک خط
برای جایگزینی متنی که در ابتدای خط نمایش داده میشود، از علامت ^
استفاده کنید. دستور زیر “Linux” را با “Unix” جایگزین میکند، اما فقط در زمانی که “Linux” در ابتدای خط شما باشد.
sed 's/^Linux/Unix/' file1.txt
Output
Unix is a family of free and open-source operating systems based on the Linux kernel.
This is inserted text.
Operating systems based on Linux are known as Linux distributions or distros.
This is appended text.
Example includes Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.
جایگزینی متن در انتهای یک خط
برای جایگزینی متنی که در انتهای خط نمایش داده میشود، از علامت $
استفاده میکنیم. دستور زیر “distros.” را با “distributions” جایگزین میکند، اما فقط در زمانی که “distros.” در انتهای خط شما باشد.
sed 's/distros.$/distributions/' file1.txt
Output
Linux is a family of free and open-source operating systems based on the Linux kernel.
This is inserted text.
Operating systems based on Linux are known as Linux distributions or distributions.
This is appended text.
Example includes Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.
جایگزینی بدون توجه به حروف بزرگ و کوچک
دستور زیر کلمه “linux” را با کلمه “Unix” جایگزین میکند و به حروف بزرگ و کوچک توجهی ندارد. گزینه I
باعث این عمل میشود.
sed 's/linux/Unix/I' file1.txt
استخراج خطور در بین الگو ها
دستور زیر تمامی خطوهای بین “inserted” و “appended” را چاپ خواهد کرد.
sed -n '/inserted/,/appended/p' file1.txt
Output
This is inserted text.
Operating systems based on Linux are known as Linux distributions or distros.
This is appended text.

پردازش چندین فایل
دستور زیر “Linux” را با “Unix” در هر دو فایل file1.txt
و file2.txt
جایگزین میکند و فایلها را بازنویسی میکند.
sed -i 's/Linux/Unix/' file1.txt file2.txt
فرمت بندی و شماره گذاری خطوط پر
دستور زیر شماره خط را به خطوط غیر خالی در فایل file1.txt
اضافه میکند.
sed '/./=' file1.txt | sed 'N;s/\n/ /'
/./=
: این بخش خطوط غیر خالی (خطوطی که حاوی حداقل یک کاراکتر هستند) را پیدا کرده و شماره آنها را چاپ میکند.N
: این دستور خط بعدی را به فضای الگوی (pattern space) اضافه میکند.s/\n/ /
: این بخش کاراکتر newline (انتقال خط) را با یک فاصله جایگزین میکند، بنابراین شماره خط و محتوای آن در یک خط نمایش داده میشود.
Output
1 Linux is a family of free and open-source operating systems based on the Linux kernel.
2 This is inserted text.
3 Operating systems based on Linux are known as Linux distributions or distros.
4 This is appended text.
5 Example includes Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.
جایگزاری رشته در یک شماره خط خاص
از دستور sed میتوانید دسترسی ایجاد تغییرات در یک خط خاص را محدود کنید. دستور زیر کلمه “distros” را با “distributions” فقط در خط سوم جایگزین میکند.
sed '3 s/distros/distributions/' file1.txt
Linux is a family of free and open-source operating systems based on the Linux kernel.
This is inserted text.
Operating systems based on Linux are known as Linux distributions or distributions.
This is appended text.
Example includes Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux, and many others.
جایگزاری رشته در یک بازه از خطوط
با استفاده از دستور sed، میتوانید تغییراتی که مدنظرتان است را در یک بازه از خطوط اعمال کنید. دستور زیر در اولین باری که کلمه “Linux” در خطوط 1 تا 3 پیدا شود را با “Unix” جایگزین میشود.
sed '1,3 s/Linux/Unix/' file1.txt
بررسی عملکرد فایل های بزرگ
اگر با استفاده از دستور sed میخواهید فایلهای بزرگ را پردازش کنید، باید توجه داشته باشید که این پردازشها منابع زیادی را مصرف خواهند کرد؛ بهویژه در زمانی که عملیاتهای متعدد یا دادههای بسیار بزرگی را در اختیار داشته باشید. در ادامه به چندین نکته ضروری برای بهینهسازی عملکردها و استفاده موثر از دستور sed خواهیم پرداخت.

استفاده از -n
برای کاهش خروجی غیر ضروری
گزینه -n
چاپ خودکار هر خطی را مسدود میکند و فقط خروجی مورد نظر را نمایش میدهد. این کار باعث کاهش بار اضافی هنگام کار با فایلهای بزرگ میشود.برای مثال:
sed -n '/pattern/p' largefile.txt
🔷مطالعه کنید: نحوه ویرایش فایل Sudoers در سرور مجازی لینوکس Linux
استفاده از اسکریپت های ساده برای کاهش تعداد عملیات
برای بهینهسازی عملکرد، بهتر است تعداد عملیاتها را در یک دستور sed کاهش دهید. به جای اینکه چندین دستور sed را به صورت پشت سر هم اجرا کنید، آنها را در یک اسکریپت واحد ترکیب کنید تا تعداد دفعات خواندن فایل کمتر شود و عملکرد سریعتر باشد.
به عنوان مثال، به جای استفاده از چند دستور جداگانه برای جایگزینیها، میتوانید همهی تغییرات را در یک دستور sed انجام دهید:
sed -e 's/foo/bar/' -e '/pattern/d' largefile.txt
ورود به جریان با لولهها (Pipes)
وقتی که دادهها را از دستورات یا جریانهای دیگر پردازش میکنید، از لولهها استفاده کنید تا از ایجاد فایلهای میانه جلوگیری کرده و ورودی و خروجی دیسک را کاهش دهید. به عنوان مثال:
cat largefile.txt | sed 's/foo/bar/' > output.txt
جلوگیری از ویرایش برای فایل های بزرگ
به جای ویرایش مستقیم فایلهای بزرگ، خروجی را در یک فایل جدید بنویسید و پس از بررسی صحت تغییرات، فایل اصلی را جایگزین کنید. به عنوان مثال:
sed 's/old/new/' largefile.txt > temp.txt && mv temp.txt largefile.txt
مقایسه ابزارهای جایگزین
برای فایلهای بسیار بزرگ، استفاده از ابزارهایی مانند awk
، perl
یا grep
ممکن است برای برخی از وظایف عملکرد بهتری داشته باشد. به عنوان مثال:
awk '{gsub(/old/, "new"); print}' largefile.txt > output.txt
این دستور از awk
برای جایگزینی کلمه “old” با “new” در تمام خطوط فایل largefile.txt
استفاده میکند و نتیجه را در فایل output.txt
ذخیره میکند. استفاده از awk
در بعضی از موارد عملکرد بهتری نسبت به sed
دارد.

سوالات متداول:
در ادامه به سوالاتی که امکان دارد در رابطه با دستور sed برای شما پیش آید. پاسخهای کوتاهی را دادهایم میتوانید با مطالعه آنها به سوالات خود پاسخ صحیح را بدهید.
1. دستور sed در لینوکس چیست؟
دستور sed
یک ویرایشگر جریان است که برای پردازش و دستکاری متن در لینوکس استفاده میشود. شما میتوانید با استفاده از sed
متن را جستجو، جایگزین، حذف یا اضافه کنید.
2. چگونه با دستور sed یک کلمه را در یک فایل جایگزین کنم؟
برای جایگزینی یک کلمه در یک فایل با استفاده از دستور sed
، از دستور زیر استفاده کنید:
sed 's/old_word/new_word/' file.txt
این دستور اولین مورد از کلمه old_word
را با new_word
جایگزین میکند.
3. چگونه تمامی موارد یک کلمه را در هر خط جایگزین کنم؟
برای جایگزینی تمام موارد یک کلمه در هر خط، از فلگ /g
استفاده کنید:
sed 's/old_word/new_word/g' file.txt
این دستور تمام موارد old_word
را در هر خط با new_word
جایگزین میکند.
4. چگونه تغییرات را در فایل اصلی ذخیره کنم؟
برای ویرایش فایل بهطور مستقیم و ذخیره تغییرات، از گزینه -i
استفاده کنید:
sed -i 's/old_word/new_word/' file.txt
این دستور تغییرات را مستقیماً در فایل file.txt
اعمال میکند.

5. چگونه یک خط خاص را در فایل حذف کنم؟
برای حذف یک خط خاص از فایل، از شماره خط استفاده کنید:
sed '2d' file.txt
این دستور خط شماره ۲ را از فایل حذف میکند.
6. چگونه میتوانم خطوطی که با یک الگو خاص تطابق دارند را حذف کنم؟
برای حذف خطوطی که حاوی یک الگوی خاص هستند، از دستور زیر استفاده کنید:
sed '/pattern/d' file.txt
این دستور تمامی خطوطی که شامل کلمه pattern
هستند را حذف میکند.
7. چگونه خطوط خالی را از فایل حذف کنم؟
برای حذف خطوط خالی از یک فایل، از دستور زیر استفاده کنید:
sed '/^$/d' file.txt
این دستور تمامی خطوط خالی را از فایل حذف میکند.
8. چگونه میتوانم تنها خطوطی که حاوی یک الگو خاص هستند را چاپ کنم؟
برای چاپ تنها خطوطی که یک الگو خاص را شامل میشوند، از دستور زیر استفاده کنید:
sed -n '/pattern/p' file.txt
این دستور فقط خطوطی که شامل pattern
هستند را نمایش میدهد.
9. چگونه میتوانم از دستور sed برای حذف کلمه خاص از فایل استفاده کنم؟
برای حذف یک کلمه خاص از یک فایل، از دستور زیر استفاده کنید:
sed 's/word_to_remove//g' file.txt
این دستور تمامی موارد word_to_remove
را از فایل حذف میکند.
10. چگونه میتوانم چندین دستور sed را در یک خط اجرا کنم؟
برای اجرای چندین دستور sed
در یک خط، از گزینه -e
استفاده کنید:
sed -e 's/old/new/' -e 's/foo/bar/' file.txt
این دستور هر دو تغییر را در یک مرحله در فایل انجام میدهد.

بیشتر مطالعه کنید: تنظیم لاگ و rotation در Nginx در سرور مجازی لینوکس
جمع بندی
تسلط داشتن بر روی دستور sed باعث میشود تا بتوانید متن را به اثر گذار تر و سریع تر در لینوکس پردازش و ویرایش کنید. ویژگی های قدرتمند این دستور و قابلیت استفاده آسان آنت در اسکریپت ها، آن را به ابزاری بسیار مفید برای انجام کارهای مختلف با متن تبدیل کرده است. با یادگیری sed میتوانید کارهایی را مانند جستجو، جایگزینی، حذف و اضافه کردن متن را به صورت خودکار و در مدت زمان کوتاهی انجام دهید. تمامی این ویژگی ها به صورت ویژه برای مدیریت سیستم ها و کار با فایل های متنی به شما کمک میکند.