انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: Droid در 10 تیر 1397، 08:22 قظ
-
سلام، دستور زیر کلمه target رو با replace در همه فایلهای مسیر جاری جایگزین میکنه، البته همراه با نسخه پشتیبان از فایلها.
find . -type f -exec sed -ibak 's/target/replace/i' {} \;
این دستور شاید در سال چند بار بیشتر نیاز نباشه، ولی خب همین چند بار هم اگر با فاصله زیاد باشه بخاطر نمیمونه و چندین بار برام پیش اومده که مثل روز اول مجبور بشم به گوگل مراجعه کنم، در بهترین حالت هم ممکنه یادم باشه چه ابزاری نیاز دارم و برم سراغ خوندن راهنماش (man) + گشتن توی bash_history.
البته اگر دستور روزانه استفاده بشه داخل bashrc به عنوان alias ذخیرش میکنم.
میشه یه فایل متنی ساده یا markdown ساخت و این دستورات رو داخلش نوشت، یا از برنامه های مثل boostnote استفاده کرد.
شما از چه روشی استفاده می کنید؟ :-k
-
./a.sh:
---------------------------------
"find . -type f -exec sed -ibak "s/"$1"/"$2"/i' {} \;
-------------------
a.sh target replace
-
شما از چه روشی استفاده می کنید؟ :-k
برنامه zim
-
سلام، دستور زیر کلمه target رو با replace در همه فایلهای مسیر جاری جایگزین میکنه، البته همراه با نسخه پشتیبان از فایلها.
find . -type f -exec sed -ibak 's/target/replace/i' {} \;
این دستور شاید در سال چند بار بیشتر نیاز نباشه، ولی خب همین چند بار هم اگر با فاصله زیاد باشه بخاطر نمیمونه و چندین بار برام پیش اومده که مثل روز اول مجبور بشم به گوگل مراجعه کنم، در بهترین حالت هم ممکنه یادم باشه چه ابزاری نیاز دارم و برم سراغ خوندن راهنماش (man) + گشتن توی bash_history.
البته اگر دستور روزانه استفاده بشه داخل bashrc به عنوان alias ذخیرش میکنم.
میشه یه فایل متنی ساده یا markdown ساخت و این دستورات رو داخلش نوشت، یا از برنامه های مثل boostnote استفاده کرد.
شما از چه روشی استفاده می کنید؟ :-k
خب اصولا دستور هارو نباید حفظ کرد
اگر یادبگیری که یه دستور دقیقا چیکار میکنه کارت خیلی راحتتر میشه
مثلا تو همون دستوری که خودت دادی فقط یه دانش پایه از sed , find نیازه
ولی خب برای چیز های بزرگتر و سخت تر من اون هارو بصورت اسکریپت داخل یه دایرکتوری ذخیره می کنم :)
./a.sh:
---------------------------------
find . -type f -exec sed -ibak 's/$1/$2/i' {} \;
-------------------
a.sh target replace
توی بش وقتی می خوای توی یه رشته از متغیر ها استفاده کنی، رشته رو باید با " (double quote) تعیین کنی ;)
-
توی بش وقتی می خوای توی یه رشته از متغیر ها استفاده کنی، رشته رو باید با " (double quote) تعیین کنی ;)
درست شد ;)