Loading…

جزیره لینوکس و سیستم های متن باز

ارسال کننده: mabedini
سلام دوستان مدیر سایت mabedini.ir هستم. از سال ۱۳۸۱ با سیستم عامل های مبتنی بر BSD کار کردم. مقالات و فیلم های آموزشی در زمینه BSD تهیه کردم. یکی از سیستم عامل های مورد علاقه من OpenBSD است. در حال حاضر دوره هایی برروی انواع فایروالهای زیر رو در سایت دارم ** دوره آموزش pfsense به صورت مقدماتی و نصب انواع بسته های کاربردی. ** دوره آموزش فایروال IPFW در FreeBSD ** دوره آموزش فایروال ipfire ** دوره جدید فایروال OPNsense
ارسال پیام خصوصی
امتیازات این مطلب
نکته: فرمان Sed و کاربردهای آن

اضافه کردن جمله به اول خط و اجرا کردن آن


در این بخش می خوام با چند قابلیت مهم در مورد Sed در خدمت شما دوستان باشم، یکی از قابلیت هایی که فرمان Sed داشت جابجا کردن کاراکترهاست. فرض کنید که فایل زیر را دارید:
$cat file.txt
/etc/passwd
/etc/groups
این فایل دارای دو خط است که مسیر دو فایل مشخص کرده، حال فرض کنید که قصد داریم که فرمان ls –l را به اول این مسیرها اضافه کنید فرمان زیر را از Sed اجرا کنید:
#sed  ‘s/^/ls –l / ‘ file.txt
ls –l  /etc/passwd
ls –l   /etc/groups
حال برای اجرا کردن این فرمان باید از سویچ e استفاده کنید به صورت زیر:
#sed  ‘s/^/ls –l /e ‘ file.txt

در خروجی این فرمان خروجی فرمان ls را مشاهده می کنید.

تغییر دادن مسیر:


برای تغییر دادن مسیر به دلیل اینکه کاراکتر خودش در فرمان sed باید از کاراکتر \ برای جداسازی استفاده کنید، فرض کنید که فایلی شامل مسیر های usrlocalbin است و شما قصد دارد که مسیر آنرا به usrbin تغییر دهید برای انجام دادن این بخش از فرمان Sed به صورت زیر استفاده کنید، فرض کنید که فایلی به نام path.txt به صورت زیر ایجاد شده است:
$ vi path.txt
reading /usr/local/bin directory
حال برای اجرا کردن فرمان sed باید به صورت زیر اقدام کنید:

$ sed 's/\/usr\/local\/bin/\/usr\/bin/' path.txt
reading /usr/bin directory

قرار دادن کل خطوط یک متن در کاراکتر خاص:


در برخی از موارد لازم است که شما برای جدا کردن خطوط یک فایل آنرا در کاراکترهای خاصی قرار دهید، در این مثال هر خط را داخل دو علامت < > قرار می دهیم برای این کار باید از کاراکتر & استفاده کنید، فرض کنید که فایل دارید به صورت زیر:
#cat file.txt
101 mohamma abedini
102 mostafa asghari
103 mohammad tondro

حال برای قرار دادن همه کلمات هر خط در بین دو علامت < > از فرمان Sed به صورت زیر استقاده کنید:
$ sed 's/^.*/<&>/' file.txt

خروجی این فرمان به صورت زیر است :
#cat file.txt
<101 mohamma abedini>
<102 mostafa asghari>
<103 mohammad tondro>
حال فرض کنید که فقط قصد دارید سه کاراکتر اول یعنی اعداد را داخل [ ] قرار دهید، از فرمان Sed به صورت زیر استفاده کنید:
$ sed 's/^[0-9][0-9][0-9]/[&]/g' file.txt
خروجی این فرمان به صورت زیر است:

#cat file.txt
[101] mohamma abedini
[102] mostafa asghari
[103] mohammad tondro

حذف کردن همه تگ های یک فایل html:


شما می توانید با استفاده از فرمان Sed و فرمان داخلی g تمامی تگهای یک فایل html را حذف کنید برای این منظور از فرمان Sed به صورت زیر استفاده کنید، فرض کنید فایلی html به صورت زیر دارید:

$ vi test.html
<html><body><h1>Hello World!</h1></body></html>
حال بعد از اجرا فرمان Sed به صورت زیر این خروجی فایل تغییر بدون تگها خواهد بود:
$ sed -e 's/<[^>]*>//g' test.html
Hello World!


مدت زمان کل آموزش: 6 ساعت و 8 دقیقه
دیدگاه ها
سلام، ممنون از آموزش خوبتون.
من دستور زیر رو اجرا کردم اما نتیجه ای دریافت نکردم و خروجی عین محتویات فایل بود :
sed 's/^[0-9][0-9][0-9]/[&]/g' file.txt

  • ارسال توسط:
  • زمان ارسال: 10 ماه قبل
فایل file.txt رو باید بسازید و قسمت اولش باید عدد های ۳ بخشی باشه
  • ارسال توسط:
  • زمان ارسال: 10 ماه قبل
البته توی اموزشهای تصویری توی این بخش در مورد sed سه جلسه توضیحات پایه ای دادم
برای ارسال نظر وارد شوید.

در حال به روز رسانی نرم افزار سایت، از شکیبایی شما ممنونیم