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

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


Боковая панель

doc:os:ubuntu:grep

Команды поиска текста в файле

grep - поиск текста в документе

Циклический поиск строки «VirtualHost» в указанном каталоге, найденная строка выделяется цветом в выводе, строки в выводе нумеруются.

# grep --color -Rn VirtualHost /usr/local/etc/apache22/

Дополнительные параметры:

  • -h - не выводить имена файлов в выводе;
  • -i - не чувствительный к регистру поиск;
  • -v - для отображения всех строк, которые не содержат строку поиска.

Также, поискать текст в файлах можно так:

# find /usr/local/etc/apache22/ -exec grep -H "VirtualHost" '{}' \; -print

strings - поиск текста в бинарных файлах

Позволяет извлечь из бинарных файлов текст ASCII.

# 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

Или так - для извлечения всех текстов ASCII:

cat /bin/ls | strings
strings /bin/ls

Замена текста с помощью sed

Предположим, мы хотим заменить в текстовом файле одну строку на другую:

cat db.kitebaza.ru | sed s/kitebaza/kitetestcenter/ > db.kitetestcenter.ru

В итоговом файле получим что хотели, однако, только одно вхождение каждого слова в строке будет заменено. Т.е. если в строке встречаются два слова, подлежащих замене, только одно из них будет заменено (то слово, что в начале). Чтобы все слова были заменены, добавьте ключ g:

cat db.kitebaza.ru | sed s/kitebaza/kitetestcenter/g > db.kitetestcenter.ru

Замена текста с помощью Perl

Замена с созданием резервной копии исходного файла с расширением bak:

$perl -i.bak -pe 's/\bPHP\b/Perl/g' file.txt

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
  _____  ____      __  _      __   __ __
 / ___/ / __ \ __ / / | | /| / /  / //_/
/ /__  / /_/ // // /  | |/ |/ /  / ,<   
\___/  \____/ \___/   |__/|__/  /_/|_|
 
/var/www/wiki.itcall.ru/data/pages/doc/os/ubuntu/grep.txt · Последние изменения: d.m.Y H:i (внешнее изменение)