MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Команды поиска GREP и FIND
25.04.2013
22:47
Раздел: root - Linux

Команды поиска GREP и FIND

 

 

Команда grep/egrep

 

 

"фильтрует" строки - оставляя только "подходящие" под шаблон

 

egrep шаблон [ file ... ]

 

В шаблон могут входить обыкновенные символы (представляющие

сами себя), а также - спецсимволы, выполняющие служебные

функции шаблона: . * ^ $ [ ]

 

. - любой произвольный символ

* - "множитель" (предыдущий символ любое число раз)

.* - любая последовательность символов

^шаблон - привязываем шаблон к началу строки

шаблон$ - привязываем шаблон к концу строки

[символы] - любой один символ из тех, что стоят в скобках

 

 

Вывести всех привелигированных пользователей:

 

egrep ':0:0:' /etc/passwd

 

Вывести всех непривелигированных пользователей:

 

egrep -v ':0:0:' /etc/passwd

 

Вывести всех пользователей, имена которых начинаются с букв

a,b,e,d

 

cat /etc/passwd | grep "^[abed].*"

 

Команда find

 

 

find рекурсивно обходит указанные каталоги и файлы, проверяет

для них выполнение указанных условий и может вдобавок выпол-

нять с найденными файлами указанные действия. Например, самое

простое действие - распечатать имя файла.

 

find файл [ ... ] ключи/условия/действия

 

Ключи-условия команды find:

 

-name "*.c" - простое имя подходит под шаблон *.c

-type f - брать только обыкновенные файлы

-type d - брать только каталоги

-size +500 - файлы размером БОЛЬШЕ 500*512 байт

-mtime -3 - дата модификации МЕНЬШЕ 3-х дней

-newer filename - дата модификации нашего файла МЕНЬШЕ, чем у

заданного файла filename

 

ВНИМАНИЕ: Команда find использует стандартные SHELL'овские

шаблоны. Команда grep использует шаблоны другого формата,

называемые регулярными выражениями.

 

Ключи-действия команды find

 

-print - просто распечатать маршрутное имя файла

-exec команда над файлом {} \;

 

Пример.

 

Напечатать имена всех обыкновенных Си-шных файлов, изменившихся

за последние 4 дня в текущем каталоге и его подкаталогах.

 

find . -type f -mtime -4 -print

 

Уничтожить все файлы с окончаниями *.bu, *%, которые не меня-

лись больше месяца.

 

find / \( -name "*.bu" -o -name "*%" \) -type f \

-atime +30 -exec rm {} \;

 

запись "rm {} \;" - обозначает команду Unix, которая будет вы-

полняться для всех таких найденных файлов. Вместо значка "{}"

будет подставляться каждый раз имя найденного файла. Естествен-

но, что таким образом мы их все и уничтожим.

Так же в этом разделе:
← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования