Вопрос по команде "grep" в Линуксе (Debian)

12
Sergh545
На сайте с 24.02.2011
Offline
124
1780

Приветствую!

Прошу наставить на путь истинный :)

Задача: поиск текста по всем папкам VPS. Текст - stummann.net. Захожу под root. Видимо, моя ошибка в незнании начального пути.

Вот что у меня получается после некоторых попыток:

root@node1-2:~# grep -R "stummann.net" ./var/www/

grep: ./var/www/: No such file or directory

root@node1-2:~# grep -R "stummann.net" ./var/www

grep: ./var/www: No such file or directory

root@node1-2:~# grep -R "stummann.net" ./www/

grep: ./www/: No such file or directory

root@node1-2:~# root@node1-2:~# grep -R "stummann.net" ./var/www/

-bash: root@node1-2:~#: command not found

root@node1-2:~# grep: ./var/www/: No such file or directory

-bash: grep:: command not found

Оплата зарубежных сервисов, виртуальные бурж карты, получение и отправка SWIFT переводов. ( https://capitalist.net/reg?from=4e4c64388f )
VK
На сайте с 29.12.2011
Offline
42
#1

Возможно Вам подойдет

grep -R "stummann.net" /var/www/

Но зависит сугубо от Ваших целей и настроек Вашего сервера.

Sergh545
На сайте с 24.02.2011
Offline
124
#2

V2NEK, Благодарю Вас! Помогло.

Вы не могли бы подсказать команду, ч помощью которой можно удалить этот текст из всех найденных файлов? Спасибо.

DV
На сайте с 01.05.2010
Offline
644
#3

файл searchreplace

#!/bin/sh
# (или какой там shabang для Bourne shell в кривых Линуксах )
# © DenisVS /ru/users/153375
# permission must be 755!
# Можно положить в Path /usr/local/bin/searchreplace (или какой там Path в кривых Линуксах) и вызывать:
# searchreplace 'replace this' 'replacement phrase' '*.php'
# Только контроль, без замены: searchreplace 'replace this' 'replacement phrase' '*.php' control
SEARCH=$1
REPLACEMENT=$2
MASK=$3
CONTROL=$4
SAVEIFS=$IFS
IFS='
'
if [ "${SEARCH}" = "" ]; then
echo "Usage: searchreplace '<replace this>' '<replacement phrase>' 'files mask' [control]"
echo "e.g.: searchreplace 'replace this' 'replacement phrase' '*.php'"
CONTROL=1
fi

if [ "${CONTROL}" = "control" ]; then
echo Control of replacing:
FILES_LIST=`find . -type f -name "${MASK}"`
for FILE in ${FILES_LIST}; do
echo ' File: '${FILE}
#cat ${FILE} | sed -e "s/${SEARCH}/${REPLACEMENT}/g" > tmp.tmp
cat ${FILE} | grep -b ${SEARCH} | sed -e "s/${SEARCH}/${REPLACEMENT}/g" | grep ${REPLACEMENT}
#grep -b ${REPLACEMENT} tmp.tmp
#rm tmp.tmp
done
fi

if [ "${CONTROL}" = "" ]; then
rm tmp.tmp
FILES_LIST=`find . -type f -name "${MASK}"`
for FILE in ${FILES_LIST}; do
echo ' File: '${FILE}
cat ${FILE} | sed -e "s/${SEARCH}/${REPLACEMENT}/g" > tmp.tmp
mv -f tmp.tmp "$FILE"
done
fi

IFS=$SAVEIFS
VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
Sergh545
На сайте с 24.02.2011
Offline
124
#4

DenisVS, Вы не могли бы объяснить что нужно сделать более простым языком :)

VK
На сайте с 29.12.2011
Offline
42
#5

Sergh545, чтобы удалить введите такое:

find /var/www/ -type f | xargs sed -i 's/stummann.net//g'

вроде не ошибся с синтаксисом

чтобы заменить на что-либо, то

find /var/www/ -type f | xargs sed -i 's/stummann.net/ЗАМЕНА/g'

только вместо слова ЗАМЕНА нужно поставить то, на что надо заменить.

А скрипт юзера DenisVS нужно сохранить как файл, например replace.sh

дальше в консоли

chmod +x replace.sh

потом

./replace.sh 

и он выдаст инструкцию по собственному использованию

DenisVS, комментарии про линуха замечательные (:

DV
На сайте с 01.05.2010
Offline
644
#6

Sergh545, моя портянка — это исполняемый файлик. Подкорректируйте в сответствии со стандартами, и просто запускайте его. Он выдаёт инструкцию по пользованию.

unreturned
На сайте с 20.03.2013
Offline
57
#7

Поиск

grep -HiR 'stummann.net' /var/www

Удаление

find /var/www/ -type f -exec sed -i 's/stummann.net//g' {} \;

Sergh545
На сайте с 24.02.2011
Offline
124
#8

V2NEK, прошу прощения за примитивные вопросы, но у меня ничего не получилось.

Что я сделал:

1. Создал в /usr/local/bin файл searchreplace и выставил права 755

2. Скопировал в файл скрипт, начиная со строки SEARCH=$1

3. В консоли написал: chmod +x searchreplace

Получил в ответ: chmod: cannot access `searchreplace': No such file or directory

VK
На сайте с 29.12.2011
Offline
42
#9

Sergh545, если Вы создали файл /usr/local/bin/searchreplace, то надо и писать chmod +x /usr/local/bin/searchreplace

а потом можно просто писать searchreplace (почти наверняка сработает) и он выведет инструкцию по использованию.

так же важно скопировать целиком текст (там важна первая строчка, можете скопировать только ее, и она должна быть первой)

soko1
На сайте с 02.05.2014
Offline
3
#10
Sergh545:
V2NEK, прошу прощения за примитивные вопросы, но у меня ничего не получилось.
Что я сделал:
1. Создал в /usr/local/bin файл searchreplace и выставил права 755
2. Скопировал в файл скрипт, начиная со строки SEARCH=$1
3. В консоли написал: chmod +x searchreplace
Получил в ответ: chmod: cannot access `searchreplace': No such file or directory

Советую не класть скрипт в /usr/local/bin (не совсем хороший тон:)), а положить его например в домашний каталог (~/), а запускать так: sh ~/searchreplace

Оперативно поможем вам в решении ваших проблем: /ru/forum/814513 (/ru/forum/814513)
12

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