Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
grep [2013/05/22 12:26] 46.231.215.230 |
grep [2013/05/22 16:29] (текущий) |
| |
| |
grep шаблон путь_к_файлу | |
| |
Эта команда выполнит поиск по шаблону в указанном файле и выведет в стандартный поток вывода строки файла, искомый шаблон содержащие. | Эта команда выполнит поиск по шаблону в указанном файле и выведет в стандартный поток вывода строки файла, искомый шаблон содержащие. |
| |
dpkg-query -L packagename | grep "/usr/bin" | dpkg-query -L packagename | grep "/usr/bin" |
| |
| |
dpkg-query -L packagename | grep "/usr/bin" | |
| |
Для систем с RPM команда будет выглядеть так: | Для систем с RPM команда будет выглядеть так: |
| |
rpm -q --filesbypkg packagename | grep "/usr/bin" | |
| |
| |
Выполняя поиск в файлах, grep умеет работать рекурсивно. Чтобы заставить grep работать таким образом, используйте опцию «-r». А по умолчанию grep будет искать только в файлах, находящихся в текущем каталоге. Таким образом, если вы запустите что-то вроде | Выполняя поиск в файлах, grep умеет работать рекурсивно. Чтобы заставить grep работать таким образом, используйте опцию «-r». А по умолчанию grep будет искать только в файлах, находящихся в текущем каталоге. Таким образом, если вы запустите что-то вроде |
| |
grep шаблон * | |
| |
| |
Но если вы запустите | Но если вы запустите |
| |
grep -r шаблон * | |
| |
| |
| |
Само собой, вы можете комбинировать опции. Например, чтобы найти файлы, не содержащие строк, соответствующих шаблону можно использовать | Само собой, вы можете комбинировать опции. Например, чтобы найти файлы, не содержащие строк, соответствующих шаблону можно использовать |
| |
grep -v -l pattern * | |
| |
| |
Используя эти опции, необходимо указать саму опцию и целое число, определяющее количество строк для вывода. Например | Используя эти опции, необходимо указать саму опцию и целое число, определяющее количество строк для вывода. Например |
| |
grep -C 2 pattern files | |
| |
| |
Регулярные выражения | Регулярные выражения |
| |
grep может оказаться совершенно неиспользуемой в повседневной жизни, если вы собираетесь при помощи неё искать лишь какие-то конкретные последовательности символов. А как быть с тем, если вам нужно найти, например, только цифры или последовательность символов, в которую могут входить лишь определённые символы или их группы? Не проблема! Используя регулярные выражения в grep, вы получаете инструмент для решения чуть ли не любой задачи поиска. | grep может оказаться совершенно неиспользуемой в повседневной жизни, если вы собираетесь при помощи неё искать лишь какие-то конкретные последовательности символов. А как быть с тем, если вам нужно найти, например, только цифры или последовательность символов, в которую могут входить лишь определённые символы или их группы? Не проблема! Используя регулярные выражения в grep, вы получаете инструмент для решения чуть ли не любой задачи поиска. |
| |
Давайте немного рассмотрим регулярные выражения, которые, вероятно, вам пригодятся. В командной оболочке символ звёздочки «*» соответствует любому символу ноль или более раз. В grep символ «*» имеет несколько иное значение. В grep этот символ необходимо группировать с другими. Например, если вам нужен тот же эффект, как и в оболочке, используйте следующее: | Давайте немного рассмотрим регулярные выражения, которые, вероятно, вам пригодятся. В командной оболочке символ звёздочки «*» соответствует любому символу ноль или более раз. В grep символ «*» имеет несколько иное значение. В grep этот символ необходимо группировать с другими. Например, если вам нужен тот же эффект, как и в оболочке, используйте следующее: |
| |
grep '.*' pattern files | |
| |
| |
| |
| |
ls | grep '.*html$' | |
| |
Если вам необходимо, чтобы grep интерпретировала спецсивмолы как обычные — предварите их обратным слешем. Например | Если вам необходимо, чтобы grep интерпретировала спецсивмолы как обычные — предварите их обратным слешем. Например |
| |
grep '\*' filename | |
| |
| |
В выражениях можно использовать диапазоны и классы символов. Для этого при составлении шаблона в grep используются квадратные скобки. Например, символу в диапазоне от A до Z будет соответствовать шаблон [A-Z]"", а любой цифре — [0-9]"". Также, используя квадратные скобки вы можете определять соответствие классам символов. Например, [:punct:]"" будет соответствовать любому знаку препинания. Например, чтобы найти строки, содержащие знаки препинания в конце, можно использовать следующую команду: | В выражениях можно использовать диапазоны и классы символов. Для этого при составлении шаблона в grep используются квадратные скобки. Например, символу в диапазоне от A до Z будет соответствовать шаблон [A-Z]"", а любой цифре — [0-9]"". Также, используя квадратные скобки вы можете определять соответствие классам символов. Например, [:punct:]"" будет соответствовать любому знаку препинания. Например, чтобы найти строки, содержащие знаки препинания в конце, можно использовать следующую команду: |
| |
grep '[[:punct:]]$' files | |
| |
| |