Оцените этот текст:




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

    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:

  -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, которая будет вы-
полняться для всех  таких  найденных файлов. Вместо значка "{}"
будет подставляться каждый раз имя найденного файла. Естествен-
но, что таким образом мы их все и уничтожим.


Last-modified: Sun, 07 Aug 2005 11:47:11 GMT
Оцените этот текст: