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

    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  echo rm  {} \;

запись  "echo rm {} \;" - обозначает команду Unix, которая будет выполняться
для всех таких найденных файлов. Вместо значка "{}" будет подставляться  имя
найденного  файла. Естественно, что таким образом мы напечатаем, что всех их
уничтожим.



Пакетный редактор модифицирует входной поток

sed -e 's/regexp/result/'           # замена подстроки
sed -e 's/regexp/result/i'          # замена подстроки не различая размер букв
sed -e 's/regexp/result/g'          # множественная замена подстроки
sed -e '/target/ s/regexp/result/i' # замена подстроки в строках с "target"

sed -i 's%regexp%result%i' filename # замена подстрок в файле "на месте"

sed -n '/nachalo/,/konec/ p'  # вывести строки от и до начало/конец
sed -e '/nachalo/,/konec/ d'  # удалить строки от начало до конец

# выделение \(полей\) и их перестановка \2 \1...
sed -e 's%\([0-9][0-9]\)/\([0-9][0-9]\)/\([0-9][0-9][0-9][0-9]\)%\2.\1.\3%'

Популярность: 1, Last-modified: Wed, 06 Mar 2024 06:37:12 GmT