Инструменты пользователя

Инструменты сайта


doc:os:ubuntu:grep

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
doc:os:ubuntu:grep [d.m.Y H:i] dbehterevdoc:os:ubuntu:grep [d.m.Y H:i] (текущий) – Статус обсуждения изменён dbehterev
Строка 1: Строка 1:
 +<html>
 +<!--LiveInternet counter--><script type="text/javascript"><!--
 +new Image().src = "//counter.yadro.ru/hit?r"+
 +escape(document.referrer)+((typeof(screen)=="undefined")?"":
 +";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
 +screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
 +";"+Math.random();//--></script><!--/LiveInternet-->
 +</html>
  
 +====== Команды поиска текста в файле ======
 +
 +===== grep - поиск текста в документе =====
 +
 +Циклический поиск строки "VirtualHost" в указанном каталоге, найденная строка выделяется цветом в выводе, строки в выводе нумеруются.
 +<code>
 +# grep --color -Rn VirtualHost /usr/local/etc/apache22/
 +</code>
 +Дополнительные параметры:
 +  * -h - не выводить имена файлов в выводе;
 +  * -i - не чувствительный к регистру поиск;
 +  * -v - для отображения всех строк, которые не содержат строку поиска.
 +
 +Также, поискать текст в файлах можно так:
 +<code>
 +# find /usr/local/etc/apache22/ -exec grep -H "VirtualHost" '{}' \; -print
 +</code>
 +
 +===== strings - поиск текста в бинарных файлах =====
 +
 +Позволяет извлечь из бинарных файлов текст ASCII.
 +<code>
 +# strings /bin/ls | grep -i libc
 +libc.so.6
 +__libc_start_main
 +GLIBC_2.2.5
 +GLIBC_2.4
 +GLIBC_2.3
 +GLIBC_2.3.4
 +</code>
 +Или так - для извлечения всех текстов ASCII:
 +<code>
 +cat /bin/ls | strings
 +strings /bin/ls
 +</code>
 +
 +===== Замена текста с помощью sed =====
 +
 +Предположим, мы хотим заменить в текстовом файле одну строку на другую:
 +<code>
 +cat db.kitebaza.ru | sed s/kitebaza/kitetestcenter/ > db.kitetestcenter.ru
 +</code>
 +В итоговом файле получим что хотели, однако, только одно вхождение каждого слова в строке будет заменено. Т.е. если в строке встречаются два слова, подлежащих замене, только одно из них будет заменено (то слово, что в начале). Чтобы все слова были заменены, добавьте ключ **g**:
 +<code>
 +cat db.kitebaza.ru | sed s/kitebaza/kitetestcenter/g > db.kitetestcenter.ru
 +</code>
 +
 +===== Замена текста с помощью Perl =====
 +
 +Замена с созданием резервной копии исходного файла с расширением bak:
 +<code>
 +$perl -i.bak -pe 's/\bPHP\b/Perl/g' file.txt
 +</code>
 +
 +~~DISCUSSION:closed~~