Команды работы с текстовыми файлами

  • 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)

  • Vi. Текстовый редактор

Запуск редактора: vi [+[n]] имя_файла

+ вывести на экран конец файла;

n вывести на экран текст файла, начиная со строки n.

Текстовый полноэкранный редактор vi работает в двух основных режимах: в режиме “ввод текста” и в режиме “команда”.

Режим “ввод текста”. В этот режим редактор переводится с помощью клавиш <a> и <i>:

<a> набор текста в текущую строку;

< i > вставка текста в текущую строку перед курсором;

<ESC> выход из режима “ввод текста” в режим “команда”.

Режим “команда”. Это - основной режим редактирования текста:

<x> уничтожение текущего символа, выделенного курсором;

<r> замена текущего символа на символ, набранный вслед за командой <r>;

<s> замена одного или нескольких символов текстом. Например: 2sTEXT - замена двух текущих символов на слово TEXT;

<o> вставить пустую строку после текущей;

[n]<dw> уничтожить текущее слово или n слов;

[n]<dd> уничтожить текущую строку или n строк.

Выход из редактора

<ESC>:wq! Выход с сохранением;

<ESC>:q! Выход без сохранения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: