انجمنهای فارسی اوبونتو
تازه کار => انجمن تازهکاران => نویسنده: abdossamad_2003 در 10 تیر 1398، 06:58 بظ
-
با سلام
می خواستم بدونم در لینوکس دستوری وجود دارد که یک عبارت در متن پیدا کرده و با عبارت دیگری جایگزین کند؟
با تشکر
-
سلام.
آره. معروفترینشون 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 یا همون تغییر اون کلمه به تمام کلمات حتی اگه توی یک خط چند کلمه مثل اون وجود داشته باشه.
-
هم با ابزارهای خط فرمان که رسول گفت میشه اینکار را انجام داد و هم با ویرایشگرهای متن گرافیکی، البته شاید همه ویرایشگرهای متن گرافیکی این قابلیت را نداشته باشند ولی معروفهاشون همگی دارند.