В Linux мы постоянно работаем со строковыми и текстовыми файлами; Независимо от того, работаете ли вы с файлами журналов или документами, от манипуляций с текстом невозможно избавиться.
Это руководство покажет вам, как найти последнее вхождение строки в файле в Linux. В Linux есть множество инструментов, которые могут помочь в выполнении задач. Однако для простоты мы будем придерживаться доступных инструментов во всех основных дистрибутивах Linux.
Метод 1: использование Grep
Печать глобального регулярного выражения, известная как grep, — это популярный и мощный инструмент для работы с текстом.
Он работает, принимая ввод от стандартного ввода или файла и ищет указанный шаблон. Как только grep находит указанный шаблон, он выводит результат на стандартный вывод. Указанный шаблон может быть одной строкой или сложным регулярным выражением.
Допустим, у нас есть файл auth.log (/var/log/auth.log). Чтобы найти последнее вхождение строки (uid = 0), мы можем использовать команду:
$ sudo grep “uid=0” auth.log | tail -1
Результат будет таким, как показано ниже:
Команда относительно проста. Начнем с поиска нужной строки с помощью grep. Затем Grep перечислит все вхождения строки, и, наконец, мы направим вывод в хвост и найдем последнюю строку вывода.
Вы можете изменить приведенную выше команду, чтобы получить последние пять вхождений строки как:
$ sudo grep “uid=0” auth.log | tail -5
Метод 2: AWK
AWK — еще один популярный язык обработки строк. AWK очень мощный, так как предлагает невероятные возможности по сравнению с другими программами для работы с текстом.
Чтобы найти строку, аналогичную приведенной выше, мы можем использовать следующую команду:
$ sudo awk ‘{/uid=0/{flag = 1}; flag’ | tail -1
Точно так же это покажет последнее вхождение строки как:
Заключение
Вот и все. В этом кратком руководстве мы обсудили два основных метода поиска последнего вхождения строки с помощью grep и awk.