Grep start

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Внимание! Страница в разработке!!!


Предположим, у нас есть данные:

$ cat /etc/passwd
root:x:0:0:System Administrator:/root:/bin/bash
bin:x:1:1:bin:/:/dev/null
daemon:x:2:2:daemon:/:/dev/null
adm:x:3:4:adm:/var/adm:/dev/null
lp:x:4:7:lp:/var/spool/lpd:/dev/null
mail:x:8:12:mail:/var/spool/mail:/dev/null
news:x:9:13:news:/var/spool/news:/dev/null
<...>

Для того чтобы "подставить" определенные значения в команду можно использовать команду grep. И в этой статье будет описана попытка объяснить данную утилиту для новичков.

Вывести строки, содержащие следующие символы

| grep слово

Пример:

$ cat /etc/passwd | grep root

Вывод:

root:x:0:0:System Administrator:/root:/bin/bash

Вывести строки независимо от регистра

grep -i "слово"

Пример:

$ grep -i "service" /etc/nsswitch.conf 

Вывод:

# This is the Name Service Switch configuration file.  This file should
# should stop if the search with the previous service turned up nothing.
# server responding) then the search continues with the next service.
# Legal name services are:
#       dns                     Use DNS (Domain Name Service)
services:   files
#services:  nisplus [NOTFOUND=return] files

Шаблоны для поиска

Указав шаблоны, вы можете отфильтровать поиск по конкретным словам:

grep -e "слово1" -e "слово2"

Пример:

$ grep -e "petr" -e "root" /etc/passwd

Вывод:

root:x:0:0:System Administrator:/root:/bin/bash
petr:x:500:500::/home/petr:/bin/bash
petr_a:x:501:501:1st hasher satellite for petr:/dev/null:/dev/null
petr_b:x:502:502:2nd hasher satellite for petr:/dev/null:/dev/null

Указание номера строки

Указав следующий параметр, в выводе вы получите номер строки, содержащий по фильтру символ.

grep -n 'слово'

Пример:

$ grep -n petr /etc/passwd

Вывод:

55:petr:x:500:500::/home/petr:/bin/bash
57:petr_a:x:501:501:1st hasher satellite for petr:/dev/null:/dev/null
58:petr_b:x:502:502:2nd hasher satellite for petr:/dev/null:/dev/null

Указание строки с символом, который например может использоваться bash

grep -F "символ"

Пример:

$ grep -F "[" /etc/grub.d/00_header

Вывод:

if [ "x${GRUB_DEFAULT}" = "x" ] ; then GRUB_DEFAULT=0 ; fi
if [ "x${GRUB_DEFAULT}" = "xsaved" ] ; then GRUB_DEFAULT='${saved_entry}' ; fi
if [ "x${GRUB_TIMEOUT}" = "x" ] ; then GRUB_TIMEOUT=5 ; fi
<...>
if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ] && [ "x$GRUB_BUTTON_CMOS_CLEAN" = "xyes" ]; then
if [ "x${GRUB_INIT_TUNE}" != "x" ] ; then
if [ "x${GRUB_BADRAM}" != "x" ] ; then


Источник