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

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

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




نویسنده موضوع: replace همزمان در چند فایل  (دفعات بازدید: 1896 بار)

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

آفلاین mshj

  • Jr. Member
  • *
  • ارسال: 35
  • جنسیت : پسر
    • ستاره‌های آسمان (ریاضی)
replace همزمان در چند فایل
« : 04 آذر 1393، 11:39 ق‌ظ »
سلام
من حدود ۲۰۰ تا فایل text دارم که میخوام تو همه‌شون یه کلمه رو با یه کلمه دیگه جایگزین کنم، دستوری هست که این کار رو برام انجام بده؟ همه فایلها تو یه پوشه هستن ولی اسمشون نظم خاصی نداره و نمیتونم هم تغییرشون بدم منظم کنم!
(متاسفانه تو مخفف سازی انگلیسی به یه کلمه ناجور فارسی رسیدن! فردا تو ارائه‌ام هر فایلی که بخوام باز کنم این عبارات ناجور دیده میشه، باید جایگزین کنم)
یه ساختمون می‌ساختن میخواستن بالا پشت بوم وسایل ببرن، یه نفر گفت که ساختمون رو سوراخ کنیم!
مردم دو دسته تقسیم شدن:
دسته اول: همه به جز یک نفر مسخره کردن
دسته دوم: یک نفر آسانسور ساخت...
------------------------------------------
مسخره‌تر از مسخره کنندگان هم وجود دارند؟
riyazi.blog.ir

آفلاین احسان☺

  • Full Member
  • *
  • ارسال: 220
  • جنسیت : پسر
پاسخ : replace همزمان در چند فایل
« پاسخ #1 : 04 آذر 1393، 11:55 ق‌ظ »
سلام
با sed میتونید درستش کنید.اگه یه کلمه است:
sed -i s/word/new-word/g fileکه باید word new-word و file رو با مقادیر دلخواه خودتون عوض کنید.
اسم پرونده ها هم مهم نیست.با یه حلقه ی فور ساده درست میشه.
باید کد نهایی یه چیزی شبیه این باشه:
for file in ./* ; do sed -i s/word/new-word/g "$file";  doneدر این حالت فقط لازمه که word و new-word رو جایگزین کنید.
فراموش نکنید که باید توی شاخه ی مورد نظر باشید.ترجیحا از پرونده ها پشتیبان بگیرید که نکنه یه حالت ناخواسته پیش بیاد.