Работа с текстом
Общие команды
more - первоначальная утилита для просмотра текста постранично
less - более продвинутая утилита, которая позволяет перемещаться по тексту не только вперед, но и назад
head - показывает первые 10 линий текстового файла
tail - показывает последние 10 линий текстового файла
-n <число> - показывает заданное число строк в начале для head или в конце для tail
head и tail можно скомбинировать:
[admin@centos8 ~]$ head /etc/passwd | tail -n 1
operator:x:11:0:operator:/root:/sbin/nologin
tail -f - показывать в режиме реального времени изменения в файле
наиболее часто используется при работе с логами, например tail -f /var/log/messages
cat - отображает содержимое файла на экран
cat -A - показать все непечатные символы
cat -b - показать с нумерацией линий
cat -s - не показывать пустые повторяющиеся строки
tac - аналог cat, но отображает текст в обратном порядке
cut - фильтрация вывода
sort - сортировка вывода
[admin@centos8 ~]$ cut -f 3 -d : /etc/passwd | sort -n | less
tr - транслитерация вывода
[admin@centos8 ~]$ cut -f 1 -d : /etc/passwd | sort | tr [:lower] [:upper]
ADM
ADMIN
AVAHI
BIN
CHRONY
CLEVIS
COCKPIT-WS
COLORD
DAEMON
DBUS
DNSMASQ
FTP
Grep
Generic Regular Expression Parser
Утилита для поиска текста в файлах или выводе
ps aux | grep ssh - поиск в выводе ssh
grep linda * - поиск файлов в текущей директории с текстом linda
grep -i linda * - поиск без учета регистра
grep -A5 linda /etc/passwd - отображение строк после искомого слова (число отвечает за количество пропускаемых строк для отображения)
grep -B5 linda /etc/passwd - отображение строк перед искомым словом
grep -R root /etc - рекурсивный поиск
grep -l - отображение имен файлов
Регулярные выражения
Регулярные выражения есть текстовые паттерны, используемые различными утилитами, такими как grep, vim, awk, sed
Регулярные выражения не есть глоббинг, так как применяются не к именам, а к содержимому файлов
Регулярные выражения могут иметь расширенный режим (extended)
egrep вместо grep с флагом "-e"
Документация хранится в man 7 regex
Регулярные выражения основаны на атомах, которые определяют текст для поиска соответствия
Атомы могут быть в виде одного символа, дипазона символов или точки
Атомы могут быть классом, например [[:alpha:]], [[:upper:]], [[:digit:]], [[:alnum:]]
Оператор повтора (repetition operator) определяет как часто встречается символ
Индикатор определяет, где найти следующий символ
Выражения должны быть выделены кавычками
Наиболее распространенные выражения:
"^" - начало строки
"$" - конец строки
"\<" - начало слова
"\>" - конец слова
"*" - ноль или более раз
"+" - один или более раз
"?" - ноль или один раз
"{n}" - точное n количество раз
Awk
Продвинутая утилита для текстового процессинга, которая специализируется на извлечении данных и отчетах
Может производить действия на основе селекторов
[admin@centos8 ~]$ awk -F : '/admin/ { print $4 }' /etc/passwd
1000
[admin@centos8 ~]$ awk -F : '{ print $NF }' /etc/passwd
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/bin/sync
/sbin/shutdown
/sbin/halt
/sbin/nologin
/bin/bash
Sed
Stream Editor
Используется для поиска и изменения текста на основе совпадений
Показать, например, четвертую строку файла:
[admin@centos8 ~]$ sed -n 4p test
dgdfkgjdhfkgjdfk
Пример замены текста ("-i" - записать в файл):
[admin@centos8 ~]$ sed -i s/dgdfkgjdhfkgjdfk/FOUR/g test
[admin@centos8 ~]$ sed -n 4p test
FOUR
Удаление строки ("-e" - редактировать):
[admin@centos8 ~]$ sed -i -e '2d' test
[admin@centos8 ~]$ sed -n 4p test
Five
Last updated
Was this helpful?