Работа с файлами в Linux системах
Использование таких инструментов, как grep, egrep, head, tail, touch, echo, cat, wc, seq в дистрибутивах Linux и подобных системах.
Мы рассмотрим самые основные утилиты для обработки информации в Linux / MacOS, которые подойдут для любого размера файлов и не будут подводить вас в производительности.
Начнем с простого и помаленьку будем двигаться к более сложными комбинациям и инструментам.
Создать пустой файл
Для этого к нам на помощь приходит утилита touch
. Следующий пример создать один файл test.txt
.
Одной командой можно создать несколько файлов.
Но есть и более правильный метод для того, чтобы создать пронумерованные файлы.
Инструмент способен также изменить метку создания / последнего открытия файла. Например, следующей командой мы изменим время создания.
Используется формат времени YYMMDDhhmm.SS
.
Записать информацию в файл
Внести любое содержимое в файл можно стандартным инструментов echo
. Следующая команда перезапишет полностью файл.
Можно и не перезаписывать, а просто добавить содержимое в конец файла.
То есть в файл можно записать результат любой команды, все опирается на конечную конструкцию >> filename.txt
, а конкретно на операторы >>
и >
.
Вывести числовую последовательность
Теперь давайте познакомимся с инструментом seq
, которым можно генерировать практически любые последовательности чисел.
Или вывести последовательность Start + Increment, Start + Increment + Increment и так далее до Stop числа.
В выводе команды можно заменить разделитель, который по умолчанию \n
, что значит отступ или новая строка.
Вывести содержимое файла
Если файл слишком большой, то выводить будет аналогично долго.
Количество строк в файле
Данной командой через вы получите количество строк в указанном файле.
Вариант без .
Последние N строк файла
Следующая команда выведет последние 15 строк из filename.txt.
Также вы можете видеть последние 15 строк в режиме реального времени. Обычно это полезно для логов.
Аналогично со строками вы можете вывести определенное количество байт с конца файла.
Первые N строк файла
Параметры точно такие же, но отсутствует параметр для вывода в режиме реального времени так как по сути своей – бесполезный.
Обе функции head
и tail
можно использовать в конвейере, например
Вытащить определенную строку из файла
Для этого и многого другого отлично подходит инструмент под названием grep
.
Он очень удобный и с очень гибкими возможностями для работы и форматирования вывода. С помощью него вы можете «вырвать» из файла строки, содержащие определенные символы, окрасить в нужный цвет и ряд других функций.
Стандартно, получаем все строки, содержащие CREATE TABLE
, делается через .
Получаем то же самое, но захватываем еще 5 строк сверху.
Аналогично, но на этот раз добавляем 5 строк снизу.
А теперь сразу и снизу, и сверху по 2 строки.
Принимается также следующая конструкция.
Или командой egrep
.
egrep
и grep
отличаются лишь отсутствием опции -E
.
Также все опции, что были в варианте с используются аналогично и в данных командах, и ставятся перед целевым выражением.
Можно подсчитать количество указанных выражений в файле.
Вырезать из файла целевое выражение (в выводе команды будет содержимое файла, не содержащее наше PATTERN
).
Найти определенные слова, критериями которых являются любые другие спец. символы по бокам. Проще говоря – поиск конкретных слов и следующее выражение не выведет вам строки, содержащие THEPATTERN
, но выведет, если PATTERN
– отдельное слово.
Следующая команда найдет все строки, начинающиеся с указанного выражения или символа.
Похожей командой можно найти и строки, заканчивающиеся указанным текстом или символом.
Last updated