Results 1 to 4 of 4

Thread: Нужна помощь в написании скрипта

  1. #1
    Join Date
    Jan 2009
    Location
    Russia, Saint-Petersburg
    Posts
    147

    Default Нужна помощь в написании скрипта

    Стоит следующая задача:

    Подключиться по FTP к удаленной машине, выполнить рекурсивную замену заданной подстроки во всех файлах сервера на другую подстроку.

    Погуглив и почитав маны, составил такой конвеер:

    Code:
    grep -R -e 'OLD_STRING' ./* 2>/dev/null |sed -e 's/:.*//'|xargs perl -pi -e 's/OLD_STRING/NEW_STRING/'
    Где OLD_STRING - искомая строка, NEW_STRING - строка, на которую менять.

    Теперь вопрос, как сделать это же, но удаленно и по FTP. Например, MC умеет грепать по FTP, но там, насколько я знаю используется virtual FS...

    Также стоит вопрос оптимизации, например исключить из поиска файлы изображений и видео, где подстроки в принципе быть не может.
    В идеале нужен скрипт, в который передается 3 параметра: ftp-линк, старая строка, новая строка.

  2. #2
    Join Date
    Jun 2008
    Location
    Moscow, Russia
    Posts
    2,952
    Blog Entries
    1

    Default Re: Нужна помощь в написании скрипта

    как сделать это же, но удаленно и по FTP
    curlftpfs?

    исключить из поиска файлы изображений и видео
    определять файлы по mime-type

    В вашем примере мне не понятно, зачем два раза искать 'OLD_STRING'. И что sed делает?

  3. #3
    Join Date
    Nov 2008
    Location
    Saint-Petersburg, Russia
    Posts
    1,102

    Default Re: Нужна помощь в написании скрипта

    тут можно просто использовать find, который найдёт все текстовые файлы и через xargs натравит на них sed.
    "Лучше молчать и прослыть дураком, чем открыть рот и развеять все сомнения." Марк Твен.

  4. #4

    Default Re: Нужна помощь в написании скрипта

    можно обойтись одним перлом.
    не понятно зачем sed, а потом еще и перл.
    find будет более элегантно, практично и гибко.

    find . -type f -exec sed -e 's/{}/NEW_NAME/' \;
    «Если не говорить пользователям, что линукс это сложно и страшно, то им совершенно все равно, в чем не разбираться. » — ЛОР

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •