Найтии заменить

12
J
На сайте с 06.07.2011
Offline
152
1207

Подскажите пожалуйста команду или скрипт.

Как в консоле заменить в дериктории /domain.com/ все *.html, *.php файлы в которых есть слово к примеру auto на disable.

Лучше конечно скрипт, директорий около 30-ти, что бы вбил в него и скрипт сделал, что нужно.

Да и ещё некоторый текст к примеру японский, нужно что бы сохранение было в нужной кодировке.

find -name '*html*' -exec grep -rl 'auto' ./ | xargs sed -i 's/auto/disable/g'

Такая команда почему-то не работает и как указать 2 расширения php и html тоже

Пишет:

find: missing argument to `-exec'

sed: no input files

Алла Рудь
На сайте с 13.08.2014
Offline
81
#1
jano:
Подскажите пожалуйста команду или скрипт.
Как в консоле заменить в дериктории /domain.com/ все *.html, *.php файлы в которых есть слово к примеру auto на disable.

Лучше конечно скрипт, директорий около 30-ти, что бы вбил в него и скрипт сделал, что нужно.

Да и ещё некоторый текст к примеру японский, нужно что бы сохранение было в нужной кодировке.

find -name '*html*' -exec grep -rl 'auto' ./ | xargs sed -i 's/auto/disable/g'
Такая команда почему-то не работает и как указать 2 расширения php и html тоже

Пишет:
find: missing argument to `-exec'
sed: no input files

Попробуйте данную команду

cd /path/to/directory

find . -name '*.html' -o -name '*.php' |xargs -i sed -i s/auto/disable/g {}

она обработает оба расширения php и html

Надежный хостинг и VPS на SSD от профессионалов HyperHost (https://hyperhost.ua/)
J
На сайте с 06.07.2011
Offline
152
#2

Вообщем правильно будет так:

grep -rl --include=*.html --include=*.php 'auto' ./ | xargs sed -i 's/auto/disable/g'

Алла Рудь
На сайте с 13.08.2014
Offline
81
#3
jano:
Вообщем правильно будет так:

grep -rl --include=*.html --include=*.php 'auto' ./ | xargs sed -i 's/auto/disable/g'

Это также рабочий вариант, все верно. Задачу можно решить несколькими путями.

J
На сайте с 06.07.2011
Offline
152
#4
Алла Рудь:
Это также рабочий вариант, все верно. Задачу можно решить несколькими путями.

Может подскажешь скрипт, где вбиваешь пути и происходит замена?

thunder_v
На сайте с 08.07.2009
Offline
90
#5

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

J
На сайте с 06.07.2011
Offline
152
#6

А как можно будет заменить путь к примеру

home/site1/public_htnl на home/site2/public_html/

?

Как поиск и замену сделать с таким символом: / ?

Нужно что бы сохранение было в utf-8 уникод

thunder_v
На сайте с 08.07.2009
Offline
90
#7

Пробуйте экранировать символ "/" через \. То есть путь будет вида:

\/some\/path\/

J
На сайте с 06.07.2011
Offline
152
#8
thunder_v:
Пробуйте экранировать символ "/" через \. То есть путь будет вида:
\/some\/path\/

Пробовал - не выходит (

thunder_v
На сайте с 08.07.2009
Offline
90
#9
jano:
Пробовал - не выходит (

Предоставьте всю информацию, что конкретно ищете и как это делали, думаю серчевским сообществом поможем найти истину :)

J
На сайте с 06.07.2011
Offline
152
#10
thunder_v:
Предоставьте всю информацию, что конкретно ищете и как это делали, думаю серчевским сообществом поможем найти истину :)

Вот команда :)

grep -rl --include=*.html --include=*.php 'home\/e33\/public_html\/domain.com' ./ | xargs sed -i 's/home\/e33\/public_html\/domain.com/home\/admin\/web\/domain.com\/public_html/g'

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий