Разработчики Linux придерживаются философии создания небольших программ, которые выполняют одну задачу и делают ее хорошо. Возьмем, к примеру, инструменты обработки текста Linux, они легкие и имеют модульную функциональность. Несмотря на то, что эти инструменты для работы с текстом различаются по сложности и функциональности, они пригодятся в среде, где графический интерфейс пользователя недоступен.
В статье рассматриваются лучшие инструменты Linux для чтения файлов и использования регулярных выражений для выполнения операций с выделенным текстом. Он также охватывает их самые основные функции и примеры для лучшего понимания.
1. grep
grep — это утилита Linux для работы с текстом, которая ищет строку символов или шаблонов, известных как регулярные выражения, в файле или тексте. Инструмент grep принадлежит к семейству утилит, включающих egrep, fgrep и grep, среди которых fgrep — самая быстрая из всех, а grep — самая простая.
Общий синтаксис использования grep выглядит следующим образом:
grep -options строка имя файла
Например, для поиска слова «корень» в файл /etc/passwd:
корень grep /etc/passwd
Некоторые стандартные примеры командной строки для начала:
Опции | Пример | Описание |
---|---|---|
-с | грэп -с |
Подсчитайте количество строк, в которых существует строка |
-я | грэп -я |
Выполнить поиск указанной строки без учета регистра |
-о | grep -о |
Печатает только совпавшую строку |
-л | grep -l "пароль" | Печатает имена файлов в текущем каталоге, соответствующие шаблону |
-н | grep -н |
Печатает номер строки вдоль строки, содержащей указанную строку |
строка1|строка2 | файл grep "строка1|строка2" | Найти и распечатать несколько строк из файла |
Точно так же вы можете использовать ^ метасимвол с помощью команды grep для отображения всех совпадающих строк, начинающихся с определенных символов.
Например, следующая команда направляет выходные данные команды env в качестве входных данных для grep и отображает переменные, начинающиеся с «ХО":
окружение | grep ^HO
Связанный: Практические примеры команд Linux Grep
2. аук
awk — это мощный язык сценариев и инструмент командной строки для работы с текстом, который может выполнять построчное сканирование и сравнивать строки с шаблонами. Базовый синтаксис команды awk — это действие, определяемое между одиночной кавычкой и фигурными скобками, за которыми следует имя файла.
awk '{действие}' имя файла
авк '{шаблон; действие}' имя файла
Утилита ищет файл с помощью регулярных выражений и выполняет функцию, указанную в параметре действия. awk выполняет скрипт в каждой строке, если вы не установили шаблон, как показано ниже:
awk '{print $1}' awk_examples.txt
...где $1 отображает первое поле awk_examples.txt файл.
Следующая команда выполняет функцию печати по заданному шаблону, заменяя второе поле "Мир" с участием "Алиса," и отображает всю строку ($0):
эхо "Привет, мир" | awk '{$2="Алиса"; напечатать $0}'
Вывод:
Привет Алиса
Точно так же вы можете использовать функцию напечатать $0 из команды выше, чтобы эмулировать grep функциональность.
awk '/john/{print $0}' /etc/passwd
джон: x: 1001:1001::/дом/джон:/бин/ш
3. Сортировать
sort — еще одна утилита командной строки Linux, помогающая отображать содержимое указанного текстового файла в отсортированном формате. Например, вы можете передать выходные данные команды awk в качестве входных данных для утилиты сортировки следующим образом:
awk '{print $1}' awk_examples.txt | сортировка > sort_text.txt
кот sort_text.txt
Вывод:
Связанный: Как сортировать текстовые файлы в Linux с помощью сортировки
4. сед
sed или потоковый редактор принимает ввод в виде потока символов и выполняет фильтрацию и преобразование текста (удаление, замену и замену) в указанном тексте.
Вы можете использовать его в скрипте и редактировать файлы не в интерактивном режиме. Следовательно, основной целью утилиты является замена строки/символов. Общий синтаксис:
файл sed 's/string/substitution/option'
Создайте файл, используя случайные предложения, чтобы попрактиковаться и понять работу этой утилиты.
Заменим вхождение слова "два" в каждой строке файла с "2" с помощью -г флаг для глобальной замены, как показано ниже:
sed 's/two/2/g' sed_examples.txt > sed_examples2.txt
Аналогичным образом используйте -д флаг для удаления определенной строки из файла:
sed '2d' sed_examples.txt
Вы также можете заменить строку, указав номер строки (4 с/две/2/п) и печатает только замененную строку следующим образом:
sed -n '4 с/два/2/p' sed_examples2.txt
То -н флаг в приведенной выше команде отключает автоматическую печать входного потока на выходной. Вы можете использовать эту опцию в свою пользу для замены функциональности утилиты grep на sed.
Например, вы можете изменить приведенную выше команду, включив только шаблон регулярного выражения. /two/p так что -п флаг будет печатать строки только в стандартный поток вывода.
sed -n '/two/p' sed_examples2.txt
Связанный: Эти 10 примеров sed сделают вас опытным пользователем Linux
5. резать
Cut — это еще одна утилита командной строки, которая вырезает/извлекает части текста из строки или файла. Он вырезает текст на основе указанного поля, символа или позиции байта и направляет результат на стандартный вывод.
Утилита использует следующий синтаксис:
резать файл
Использовать -б возможность вырезать раздел или содержимое, используя указанный байт или диапазон байтов:
вырезать -b 1 cut_examples.txt
Использовать -с флаг для извлечения текста путем указания позиций символов:
вырезать -c 1,3,5 cut_examples.txt
Наконец, вы также можете извлечь текст, указав поля с -f вариант и -д для пробела или разделителя полей:
вырезать -d " " -f 1 cut_examples.txt
Вот список диапазонов с примерами и описаниями, которые вы можете использовать с персонажем. -с и байт -б опции:
Диапазон | Пример | Описание |
---|---|---|
н- | вырезать -c 7- имя файла | Извлечь символ из n-го целого числа до конца строки |
н-м | вырезать -b 7-15 имя файла | Выдержки из целых n-m каждой строки входного файла |
-м | вырезать -c -7 имя файла | Извлекает строки, начиная с m до конца строки |
Обратите внимание, что вы не можете определить диапазоны для извлечения текста с помощью поля -f вариант.
Управление текстом с помощью команд Linux
Linux предлагает множество программ и инструментов для работы с файлами или текстом. Изучение их всех может не потребоваться, так как вы можете легко заполнить пробел другим, как только хорошо овладеете одним, например, используя sed как grep или awk как grep, но это не может быть верно для каждого инструмента.
Кроме того, команды Linux имеют крутую кривую обучения, но как только вы разовьете навыки, они могут оказаться очень полезными и эффективными в жизни любого пользователя Linux, особенно системного администратора.
Устали от старого и скучного терминального приложения, предустановленного в Linux? Ознакомьтесь с этими восемью терминальными приложениями, которые улучшат ваш рабочий процесс.
Читать далее
- линукс
- Команды Linux
Румаиса — независимый писатель в MUO. Она носила много шляп, от математика до энтузиаста информационной безопасности, и теперь работает аналитиком SOC. Ее интересы включают чтение и письмо о новых технологиях, дистрибутивах Linux и обо всем, что связано с информационной безопасностью.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться