Командата grep и регулярните изрази

Grep е инсталиран по подразбиране в Ubuntu 12.04. Командата grep е полезна добавка за търсене на чист текст с помощта на регулярни изрази. Наименованието на командата идва от g/re/p (global / regular expression / print). Главното предназначение на командата е да търси отделни стрингове във файл локално или отдалечено. Grep търси ред по ред съвпадения с дадена дума или стринг. По подразбиране на стандартния изход се принтират всички редове, в които е намерено такова съвпадение.
Помощ за командата може да получите като въведете в терминала (Ctrl+Alt+T):

man grep

Синтаксис на командата


grep [опция] шаблон [път до файла]

или

grep [опция] [-e шаблон | -f файл] [файл...]

Възможните опции са описани в помощната информация.

Примери


Разполагаме с текстов файл, който искаме да претърсим за наличие на някакъв стринг.
Какво трябва да направим?
Въвеждаме в терминала:

grep “Когато паднеш, стани” /home/poli/Desktop/love.txt

grep_1.png

На стандартния изход се извеждат всички намерени съвпадения.
Когато искаме да претърсим всички файлове в дадена директория за наличието на определен стринг, използваме опцията -r на командата grep:

grep_3.png

Когато искаме да търсим отделна дума във файл или директория, командата е:

grep -w "Африка" /home/poli/Desktop/love.txt

grep_4.png

или

grep -w "Афр" /home/poli/Desktop/love.txt

grep_5.png

Файлът /etc/passwd


Файлът /etc/passwd се използва от системата, за да проследява всеки регистриран потребител, който има достъп до нея. Всеки ред от файла описва единичен потребител и съдържа седем полета, отделени с две точки:

name:password:UID:GID:GECOS:directory:shell

name- потребителско име

password- криптирана парола

UID- идентификационен номер на потребителя

GID- идентификационен номер на групата (идентификационния номер на първичната група за този потребител, ако потребителя участва в няколко групи, информация за останалите можете да откриете във файла /etc/group)

GECOS- това поле понякога се нарича поле за коментари. То не е задължително и обикновено съдържа пълното потребителско име. Някои програми, показват информация от това поле.

directory- home директорията на потребителя (работната директория), където потребителят се намира след влизане в системата.

shell- входният шел

Файлът /etc/passwd е собственост на root потребителя, но трябва да може да се чете от всички потребители, но само root потребителят има право да пише в него. Ако потребителят има поставена парола за вход в системата, на мястото на паролата има символ x, ако парола липсва, знакът е *. Съдържанието на файла /etc/passwd можем да разгледаме, като в командния ред въведем:

cat /etc/passwd

Криптираните пароли се съхраняват във файла /etc/shadow. Паролата за вход в системата можем да променим с командата passwd, въведена в терминала.
Ако искаме да покажем редовете от файла /etc/passwd, които съдържат стринга “root”, в терминала въвеждаме:

grep ^root /etc/passwd

grep_2.png


Няма коментари:

Публикуване на коментар