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

تازه کار => انجمن تازه‌کاران => نویسنده: abdossamad_2003 در 10 تیر 1398، 06:58 ب‌ظ

عنوان: جایگرینی یک عبارت در متن
ارسال شده توسط: abdossamad_2003 در 10 تیر 1398، 06:58 ب‌ظ
با سلام
می خواستم بدونم در لینوکس دستوری وجود دارد که یک عبارت در متن پیدا کرده و با عبارت دیگری جایگزین کند؟

با تشکر
عنوان: پاسخ : جایگرینی یک عبارت در متن
ارسال شده توسط: رسول سعیدنژاد در 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 یا همون تغییر اون کلمه به تمام کلمات حتی اگه توی یک خط چند کلمه مثل اون وجود داشته باشه.
عنوان: پاسخ : جایگرینی یک عبارت در متن
ارسال شده توسط: Farhaad 1992 در 11 تیر 1398، 07:50 ق‌ظ
هم با ابزارهای خط فرمان که رسول گفت می‌شه اینکار را انجام داد و هم با ویرایش‌گرهای متن گرافیکی، البته شاید همه ویرایش‌گرهای متن گرافیکی این قابلیت را نداشته باشند ولی معروف‌هاشون همگی دارند.