انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: جایگرینی یک عبارت در متن  (دفعات بازدید: 551 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین abdossamad_2003

  • Newbie
  • *
  • ارسال: 9
جایگرینی یک عبارت در متن
« : 10 تیر 1398، 06:58 ب‌ظ »
با سلام
می خواستم بدونم در لینوکس دستوری وجود دارد که یک عبارت در متن پیدا کرده و با عبارت دیگری جایگزین کند؟

با تشکر

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
پاسخ : جایگرینی یک عبارت در متن
« پاسخ #1 : 10 تیر 1398، 07:15 ب‌ظ »
سلام.
آره. معروف‌ترین‌شون Sed و Awk
که البته دومی خودش یه جور زبان برنامه‌نویسی محسوب می‌شه و امکاناتش خیلی خیلی زیاده.
ولی خب Sed ساده‌تره.
مثلاً:
sed -i -e s/File/FILE/g Text.txt

این دستور هرچی کلمهٔ File باشه رو با FILE جایگزین می‌کنه، حتی اگه توی یک خط چند تا باشه.
اون i- به معنی ذخیره داخل فایل هست (که خودمون بهش دادیم. Text.txt. یعنی تغییر رو توی خروجی بهمون نشون نمی‌ده، مستقیماً داخل فایل ذخیره‌ش می‌کنه)
و e- هم برای استفاده از Regular Expression یا همون Regex هست.
و s هم به معنی Replace
و اون g بعد از اسلش هم به معنی global یا همون تغییر اون کلمه به تمام کلمات حتی اگه توی یک خط چند کلمه مثل اون وجود داشته باشه.
« آخرین ویرایش: 11 تیر 1398، 02:07 ب‌ظ توسط رسول سعیدنژاد »
نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین Farhaad 1992

  • Hero Member
  • *
  • ارسال: 943
  • جنسیت : پسر
  • گنو با گنوم
پاسخ : جایگرینی یک عبارت در متن
« پاسخ #2 : 11 تیر 1398، 07:50 ق‌ظ »
هم با ابزارهای خط فرمان که رسول گفت می‌شه اینکار را انجام داد و هم با ویرایش‌گرهای متن گرافیکی، البته شاید همه ویرایش‌گرهای متن گرافیکی این قابلیت را نداشته باشند ولی معروف‌هاشون همگی دارند.
* نام کاربری حساب من Fedora-Red Hat است ولی نام نمایهٔ (پروفایل) من، نام حقیقی + سال تولد من است
* از دی ۱۳۹۸ دیگر فعالیت پیوسته و دائم ندارم
* نظرات و ارسال‌های من فقط در زمان ارسال خود معتبر بودند و نشان‌دهنده طرز فکر و سطح دانش فعلی من نیستند