Команды работы с текстовыми файлами
grep - поиск шаблона (подстроки) в файлах:
$ grep [-ключи] подстрока список_файлов
Найденные строки выводятся на стандартный вывод в формате, определяемом ключами. Если файлов несколько, то перед каждой строкой выводится имя соответствующего файла. Ключи:
-c - вывод имен всех файлов с указанием количества строк, содержащих шаблон;
-i - игнорирование регистра (различия строчных и заглавных латинских букв);
-n - вывод перед строкой ее относительного номера в файле;
-v - вывод строк, не содержащих шаблона (инверсия вывода);
-l - вывод только имен файлов, содержащих шаблон.
wc - подсчет количества строк, слов и символов в файлах:
$ wc [-lwc] [список_файлов]
Подсчет строк - ключ -l, слов - ключ -w и символов - ключ -c (по умолчанию -lwc). Если список файлов пуст, то подсчет ведется в стандартном потоке ввода.
sort - сортировка файлов:
$ sort [-ключи] список_файлов
Эта команда сортирует входные файлы по строкам в соответствии с увеличением кодов символов. Ключи:
-r - обратный порядок сортировки;
-f - не учитывать различие строчных и прописных латинских букв
-n - числовой порядок сортировки и т.д.
cmp - вывод места первого расхождения:
$ cmp файл_1 файл_2
Выводит номер символа и номер строки (в текстовых файлах), в которой впервые встречается расхождение во входных файлах. Работает с любыми файлами.
diff - вывод всех расхождений в файлах:
$ diff файл_1 файл_2
Выводит все строки, в которых встречаются расхождения между входными файлами. Работает только с текстовыми файлами.
find -поиск файлов в поддереве каталогов:
find список_каталогов условия_поиска Команда последовательно просматривает все поддеревья, начинающиеся с одного из каталогов, указанных в списке каталогов, анализирует их атрибуты, и если они удовлетворяют условиям поиска: выполняет действия, заданные в условиях_поиска В команде может быть задано множество условий поиска, необходимые комбинации которых объединяются в булевское выражение с помощью логических операций:
! условие отрицание условия;
пробел соответствует операции «И»;
-o операция «ИЛИ»;
\( выражение \) булевское выражение в скобках
Перечислим некоторые опции, задающие условия (при этом условимся обозначать через n положительное десятичное число, +n - любое положительное число, строго большее n, -n - любое положительное число, строго меньшее n):
· -name имя_файла истинно для файлов с именем имя_файла; в задаваемом имени допускается использование метасимволов;
· -perm 8-ричный_код истинно для файлов с указанным кодом прав доступа;
· -type {f|d|b|c|p} истинно для файлов указанного типа (f - обычный файл, d - каталог, b - блок-ориентированный специальный файл, c - байт-ориентированный специальный файл, p - именованный канал);
· -print всегда истинно; вызывает печать маршрутного имени файла;
· -size n[c] истинно для файлов с длиной n. По умолчанию длина задается в блоках по 512 байт, а если после длины ставится символ c, то в байтах;
· -exec команда истинно, если команда, выполняющаяся при наличии данного условия, возвращает нулевой код завершения. Если в тексте команды должно быть указано имя текущего проверяемого файла, то вместо него пишут {}. В конце команды должна стоять экранированная точка с запятой: ‘\;’;
· -links n истинно для файлов с числом ссылок n.
Примеры: $find / -type f -links +1 -print
Выводятся полные маршрутные имена файлов корневого каталога, на которые имеется более одной ссылки. $find / -type f -size +2 -exec ls -l {}\;
Выводятся листинги с указанием длины в блоках (по 1024 байта) для файлов корневого каталога, длина которых в блоках по 512 байт превышает 2. $find /dev \( -type d -o -type b \) -print
Выводятся имена каталогов или специальных файлов устройств блок-ориентированного типа из каталога /dev и его подкаталогов find / -name ‘*.a’ -exec ar -t {} \; |grep console
В этой сложной команде ищутся файлы с расширением ‘.a’ (архивы или библиотеки), происходит просмотр их содержимого (-exec ar -t {}) и выводятся строки, содержащие подстроку ‘console’ (grep console)
Дата добавления: 2021-09-25; просмотров: 303;