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

کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: mshj در 04 آذر 1393، 11:39 ق‌ظ

عنوان: replace همزمان در چند فایل
ارسال شده توسط: mshj در 04 آذر 1393، 11:39 ق‌ظ
سلام
من حدود ۲۰۰ تا فایل text دارم که میخوام تو همه‌شون یه کلمه رو با یه کلمه دیگه جایگزین کنم، دستوری هست که این کار رو برام انجام بده؟ همه فایلها تو یه پوشه هستن ولی اسمشون نظم خاصی نداره و نمیتونم هم تغییرشون بدم منظم کنم!
(متاسفانه تو مخفف سازی انگلیسی به یه کلمه ناجور فارسی رسیدن! فردا تو ارائه‌ام هر فایلی که بخوام باز کنم این عبارات ناجور دیده میشه، باید جایگزین کنم)
عنوان: پاسخ : replace همزمان در چند فایل
ارسال شده توسط: احسان☺ در 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 رو جایگزین کنید.
فراموش نکنید که باید توی شاخه ی مورد نظر باشید.ترجیحا از پرونده ها پشتیبان بگیرید که نکنه یه حالت ناخواسته پیش بیاد.