В работата ми, често се налага да търся определен string в много директории и да трябва да го заменя с друг. В този пост ще напиша един лесен начин как се прави това с помощта на find и sed.
Кръстил съм поста : Find and replace string in linux за по-лесното му откриване от търсачките :]
Ето и схемата :
find /home/ -name "ClickController.php" | xargs sed -i 's#http://address1.com/dev/CMS/API/bannerStats#https://nov-address2.com/API/bannerStats#g'
Тук идеята е проста – търсим string-а ClickController.php във всички под директории на /home ( в моят случай бяха над 1000 потребителски директории) и заменяме adress1.com с nov-address2.com.
Съществуват и много други вариянти , като вместо find може да се използва grep, но съм забелязъл, че grep товари много повече сървъра за разлика от find.
Това е всичко!