Часто возникает необходимость прочитать файл, или найти какую-нибудь информацию, которая неизвестно где лежит, а из инструментов под рукой только консоль. Но суть как раз в том, что консоль даёт куда больше возможностей для поиска и обработки нужной информации, чем любой GUI, а ещё все эти возможности можно легко использовать в скриптах.
Сегодня рассмотрим основные программы для поиска файлов (find) и просмотра содержимого директорий (ls), чтения файлов (cat, tac, less, more, head, tail), парсинга и обработка данных (grep, awk, sed, cut, uniq, sort, tr, paste), а также посмотрим на современные аналоги классических программ.
Представленные ниже программы имеют широкие возможности и, не смотря на большой объём текста, описаны они далеко не все. Так что все данные о программе можно получить с помощью --help, info и man.
Поиск
find
Мощный инструмент для поиска файлов и каталогов в файловой системе. Она предоставляет гибкость в поиске файлов по множеству критериев, таких как имя, тип, размер, дата изменения и многие другие атрибуты.
Основные параметры и опции команды
- Поиск по имени
-name: Поиск файлов или каталогов по имени. Поддерживает подстановочные знаки (wildcards).find /путь/к/директории -name "имя_файла" find /путь/к/директории -name "*.txt"-iname: Поиск файлов или каталогов по имени, игнорируя регистр.find /путь/к/директории -iname "имя_файла" find /путь/к/директории -iname "*.TXT"
- Поиск по типу
-type: Поиск файлов по типу. Например,fдля файлов,dдля директорий.find /путь/к/директории -type f find /путь/к/директории -type d
- Поиск по размеру
-size: Поиск файлов по размеру. Можно указать размеры в байтах (по умолчанию), килобайтах (k), мегабайтах (M), гигабайтах (G).find /путь/к/директории -size +100M # Файлы больше 100 МБ find /путь/к/директории -size -10k # Файлы меньше 10 КБ
- Поиск по времени
-mtime: Поиск файлов, измененных определенное количество дней назад.+nдля больше чемnдней,-nдля меньше чемnдней.find /путь/к/директории -mtime +7 # Измененные более 7 дней назад find /путь/к/директории -mtime -7 # Измененные менее 7 дней назад-newermt: Поиск файлов, измененных после определенной даты (в форматеYYYY-MM-DD).find /путь/к/директории -newermt 2024-01-01-newermtи! -newermtможно использовать для поиска файлов, измененных до или после определенной даты.find /путь/к/директории ! -newermt 2024-08-01 ! -newermt 2024-09-01
- Поиск по владельцу и группе
-user: Поиск файлов, принадлежащих определенному пользователю.find /путь/к/директории -user имя_пользователя-group: Поиск файлов, принадлежащих определенной группе.find /путь/к/директории -group имя_группы
- Поиск по правам доступа
-perm: Поиск файлов с определенными правами доступа.find /путь/к/директории -perm 644
- Поиск и выполнение команд
-exec: Выполнение команды для каждого найденного файла. Команда должна заканчиваться\;.find /путь/к/директории -type f -name "*.tmp" -exec rm {} \;-print: Печать имени файла. Это стандартное поведение, но его можно явно указать.find /путь/к/директории -type f -print
Примеры использования
- Найти все
.logфайлы в/var/logи удалить их:find /var/log -type f -name "*.log" -exec rm {} \; - Найти все файлы, измененные в последние 30 дней:
find /путь/к/директории -type f -mtime -30 - Найти все файлы, которые не были изменены в течение последних 60 дней:
find /путь/к/директории -type f -mtime +60 - Найти все
.jpgфайлы, которые принадлежат пользователюjohn:find /путь/к/директории -type f -name "*.jpg" -user john - Найти все файлы, измененные вне августа 2024 года:
find /путь/к/test -type f ! -newermt 2024-08-01 ! -newermt 2024-09-01
ls
Используется для отображения списка файлов и директорий в текущем каталоге или в указанном каталоге. Это одна из самых часто используемых команд в командной строке и обладает множеством опций, которые позволяют настраивать вывод в соответствии с потребностями пользователя.
Основной синтаксис
ls [опции] [файлы/директории]
- Без опций: По умолчанию
lsотображает имена файлов и директорий в текущем каталоге. - С опциями: Команда
lsподдерживает различные опции для изменения формата вывода.
Полезные опции
-aили--all: Показывает все файлы, включая скрытые (файлы, имена которых начинаются с точки).-l: Выводит подробный список файлов и директорий, включая права доступа, владельца, размер и дату последнего изменения.-h(вместе с-l): Форматирует размеры файлов в удобочитаемом виде (например,1K,234M).-Rили--recursive: Рекурсивно отображает содержимое всех поддиректорий.-t: Сортирует файлы по времени последнего изменения, от самого нового к старому.-S: Сортирует файлы по размеру, от самого большого к самому маленькому.-rили--reverse: Переворачивает порядок сортировки.
Примеры использования
- Просмотр содержимого текущего каталога:
ls
- Просмотр содержимого каталога
/home/user:
ls /home/user
3. **Вывод всех файлов, включая скрытые, в подробном формате**:
```bash
ls -la
- Просмотр файлов и директорий в текущем каталоге, сортированных по времени последнего изменения:
ls -lt
- Просмотр содержимого каталога и всех его поддиректорий:
ls -R
Просмотр содержимого файлов
cat
Одна из самых простых и часто используемых команд для работы с текстовыми файлами. Она предназначена для вывода содержимого одного или нескольких файлов на стандартный вывод (обычно на экран). Основные возможности и параметры cat следующие:
Основное использование
-
Вывод содержимого файла:
cat filename.txtЭта команда выведет содержимое
filename.txtна экран. -
Вывод содержимого нескольких файлов:
cat file1.txt file2.txtЭта команда выведет содержимое
file1.txtиfile2.txtпоследовательно -
Создание нового файла или добавление текста в существующий:
cat > newfile.txtПосле выполнения команды вы можете вводить текст, который будет записан в файл
newfile.txt. Для завершения ввода нажмитеCtrl+D.Если файл
newfile.txtуже существует, его содержимое будет заменено новым текстом.Чтобы добавить текст в конец существующего файла, используйте:
cat >> existingfile.txtЗдесь также можно вводить текст, а затем завершить ввод с помощью
Ctrl+D.
Полезные опции
- Нумерация строк:
- Выводит содержимое файла с нумерацией строк.
cat -n filename.txt - Показать скрытые символы:
- Эта опция показывает символы табуляции как
^Iи символы конца строки как$.
cat -A filename.txt - Эта опция показывает символы табуляции как
- Сокращение последовательных пустых строк:
- Объединяет несколько последовательных пустых строк в одну.
cat -s filename.txt - Отображение табуляции как
^I:- Позволяет визуально видеть табуляцию в выводе.
cat -T filename.txt
Примеры использования
- Создание файла из нескольких других файлов:
Эта команда объединит содержимоеcat file1.txt file2.txt > combined.txtfile1.txtиfile2.txtи запишет его вcombined.txt. - Просмотр файла с нумерацией строк и отображением скрытых символов:
cat -n -A filename.txt
tac
Команда tac в Linux является своеобразным обратным аналогом команды cat. Она выводит содержимое файлов в обратном порядке, начиная с последней строки и заканчивая первой. Название команды tac происходит от слова cat, написанного наоборот, что отражает её основную функцию.
Основные возможности
- Вывод файла в обратном порядке:
- По умолчанию,
tacвыводит содержимое файла построчно, начиная с последней строки и заканчивая первой. - Пример:
- По умолчанию,
tac filename.txt
- Эта команда выведет содержимое файла
filename.txtв обратном порядке.
- Работа с несколькими файлами:
- Если указать несколько файлов,
tacвыведет содержимое каждого файла в обратном порядке, а затем объединит их также в обратном порядке. - Пример:
- Если указать несколько файлов,
tac file1.txt file2.txt
- В этом случае
tacсначала выведет строки изfile2.txtв обратном порядке, а затем строки изfile1.txtтакже в обратном порядке.
- Использование с потоками данных:
tacможет принимать данные из стандартного ввода, что позволяет использовать её в пайпах.- Пример:
echo -e "first line\nsecond line\nthird line" | tac
- Эта команда выведет:
third line
second line
first line
Полезные опции
- Опция
-s(separator):- По умолчанию
tacсчитает строкой всё, что заканчивается символом новой строки\n. Опция-sпозволяет задать другой разделитель строк, например, точку или запятую. - Пример: вывод содержимого файла, разделенного точками:
- По умолчанию
tac -s "." filename.txt
- В этом случае
tacразделит строки файла по точкам и выведет их в обратном порядке.
- Опция
-b(before separator):- Эта опция используется с
-sи заставляетtacвключать разделитель в начало строки, а не в её конец (по умолчанию разделитель включается в конец строки). - Пример:
- Эта опция используется с
echo "apple,banana,cherry" | tac -s "," -b
- Вывод:
,cherry,bananaapple
- Опция
-r(regex):- Используется для указания регулярного выражения в качестве разделителя строк.
- Пример: использование чисел в качестве разделителей:
echo "abc123def456ghi789jkl" | tac -r -s "[0-9]+"
- Эта команда разделит текст по числам и выведет его части в обратном порядке.
Примеры использования
- Простое использование
tac:
Вывод содержимого файлаtac filename.txtfilename.txtв обратном порядке. - Вывод содержимого нескольких файлов в обратном порядке:
Сначала выводит строки изtac file1.txt file2.txtfile2.txtв обратном порядке, затем строки изfile1.txtв обратном порядке. - Использование разделителя вместо новой строки:
Выводит:echo "one.two.three" | tac -s "."three.two.one - Обратный порядок строк с определенным шаблоном:
Выводит:echo "apple,banana,cherry" | tac -s ","cherry,banana,apple
less
Команда less в Linux предлагает довольно мощные и гибкие возможности поиска, которые делают её удобным инструментом для работы с текстовыми файлами, особенно если нужно искать и просматривать текстовые данные.
Основные особенности
- Постраничный просмотр:
- В отличие от
cat, которая выводит весь файл сразу,lessвыводит содержимое файла постранично. Вы можете перемещаться по файлу, что делает его более удобным для чтения больших файлов.
- В отличие от
- Управление просмотром:
- Вы можете прокручивать текст вверх и вниз, используя клавиши со стрелками,
Page Up,Page Down, или клавишиjиk. - Для выхода из режима просмотра нажмите
q.
- Вы можете прокручивать текст вверх и вниз, используя клавиши со стрелками,
- Поиск внутри файла:
lessпозволяет искать текст внутри файла. Чтобы начать поиск, нажмите/и введите поисковый запрос. Для поиска следующего совпадения нажмитеn, для предыдущего —N.- Поиск чувствителен к регистру по умолчанию, но вы можете сделать его нечувствительным, добавив
-Iперед командойlessили используя/в командном режиме.
- Работа с несколькими файлами:
- Вы можете открыть несколько файлов одновременно, передавая их как аргументы:
less file1.txt file2.txt
- Для перехода между файлами используйте
:n(next) и:p(previous).
Полезные опции
- Опция
-N— показывает нумерацию строк:less -N filename.txt - Опция
-S— отключает автоматическое перенесение длинных строк:- По умолчанию длинные строки переносятся на следующую строку. Используя
-S, можно отключить это поведение, и тогда строки будут прокручиваться горизонтально.
less -S filename.txt - По умолчанию длинные строки переносятся на следующую строку. Используя
- Опция
-i— делает поиск нечувствительным к регистру:- Включает нечувствительный к регистру поиск.
less -i filename.txt - Опция
-r— корректное отображение управляющих символов:- Позволяет правильно отображать цветные тексты и другие управляющие символы.
less -r filename.txt - Просмотр данных, поступающих в реальном времени:
- Команда
lessподдерживает работу с пайпами и может отображать данные в реальном времени, если запустить её с опцией+F. Это полезно, например, для просмотра логов.
tail -f /var/log/syslog | less +F - Команда
Управление просмотром
- Стрелки вверх/вниз: перемещение по тексту на одну строку.
- Page Up / Page Down: перемещение по тексту на одну страницу.
G: переход в конец файла.g: переход в начало файла./текст: поиск текста.n: перейти к следующему совпадению.N: перейти к предыдущему совпадению.q: выход изless.
Примеры использования
- Открытие большого файла:
Этот пример полезен для просмотра логов, где важна возможность перемещения по файлу без загрузки его полностью в память.less /var/log/syslog - Просмотр с нумерацией строк и отключением переноса строк:
less -N -S filename.txt - Просмотр вывода другой команды:
- Используя пайпы, можно просмотреть вывод любой команды через
less:
- Используя пайпы, можно просмотреть вывод любой команды через
ps aux | less
Помимо просмотра содержимого файла, less предоставляет гибкие возможности поиска по содержимому
- Простой поиск вперед:
- Чтобы начать поиск текста вперед по файлу, нажмите
/, а затем введите текст, который вы хотите найти, и нажмитеEnter. - Пример:
- Чтобы начать поиск текста вперед по файлу, нажмите
/text_to_find
lessнайдет первое вхождение указанного текста и перейдет к нему.
- Простой поиск назад:
- Для поиска текста назад (к предыдущим строкам) используйте
?, а затем введите текст, который вы хотите найти, и нажмитеEnter. - Пример:
- Для поиска текста назад (к предыдущим строкам) используйте
?text_to_find
lessбудет искать текст в обратном направлении, начиная с текущего положения.
- Переход к следующему или предыдущему совпадению:
- После выполнения поиска с помощью
/или?, вы можете перейти к следующему совпадению, нажавn(next). - Чтобы перейти к предыдущему совпадению, нажмите
N(предыдущее совпадение). - Пример: если вы искали
/error, то нажавn, вы перейдете к следующему вхождению слова "error".
- После выполнения поиска с помощью
- Поиск с игнорированием регистра:
- Чтобы искать текст, игнорируя регистр, запустите
lessс опцией-I:
- Чтобы искать текст, игнорируя регистр, запустите
less -I filename.txt
- В режиме поиска регистр будет игнорироваться, и
Error,error, иERRORбудут считаться одинаковыми.
- Повтор последнего поиска:
- Если вы уже выполнили поиск и хотите повторить его, просто нажмите
/и затемEnter(или?иEnterдля поиска в обратном направлении).
- Если вы уже выполнили поиск и хотите повторить его, просто нажмите
- Отображение совпадений при поиске:
- При выполнении поиска,
lessавтоматически перемещает экран к первой строке, содержащей совпадение, и подсвечивает это совпадение, что облегчает его обнаружение.
- При выполнении поиска,
Расширенные возможности поиска
- Поиск с регулярными выражениями:
lessподдерживает использование регулярных выражений в поисковых запросах, что позволяет искать более сложные паттерны текста.- Пример: поиск строки, начинающейся с "Error":
/^Error
- Поиск в определенных строках:
- Вы можете ограничить поиск только определенными строками с помощью регулярных выражений.
- Пример: поиск строк, заканчивающихся на "end":
/end$
- Поиск с учетом регистра:
- Если вы хотите, чтобы поиск был чувствителен к регистру (например, чтобы находить только
Errorи игнорироватьerror), используйте опцию-I, чтобы отключить игнорирование регистра.
- Если вы хотите, чтобы поиск был чувствителен к регистру (например, чтобы находить только
more
Команда more в Linux предназначена для постраничного просмотра содержимого текстовых файлов в терминале. Она полезна для работы с большими файлами, когда вам нужно просматривать их по частям, а не выводить весь файл сразу, как это делает команда cat.
Основные особенности
- Постраничный просмотр:
- В отличие от
cat, которая выводит весь файл сразу,moreпоказывает содержимое файла по одной странице за раз, что удобно для чтения больших текстов.
- В отличие от
- Простота использования:
- Интерфейс
moreминималистичен и прост в использовании, хотя и менее функционален по сравнению с командойless.
- Интерфейс
- Минимальные требования к ресурсам:
moreзагружает файл постранично, что делает его экономичным с точки зрения использования памяти и процессора, особенно на слабых системах.
Основные команды и навигация
- Просмотр файла с помощью
more:
Эта команда откроет файлmore filename.txtfilename.txtи покажет его первую страницу. - Навигация по файлу:
- Пробел: переход к следующей странице.
- Enter: переход на одну строку вниз.
- b: возврат на одну страницу назад.
- /строка: поиск строки в тексте.
- n: перейти к следующему совпадению при поиске.
- q: выход из
more.
- Просмотр нескольких файлов:
- Вы можете передать несколько файлов в команду
more, и она покажет их последовательно:
- Вы можете передать несколько файлов в команду
more file1.txt file2.txt
- После окончания одного файла
moreавтоматически перейдет к следующему.
- Просмотр данных из пайпа:
moreможно использовать для постраничного просмотра вывода других команд:
ps aux | more- В этом примере вывод команды
ps aux(список процессов) будет отображаться постранично.
Полезные опции
- Опция
-d:- Показ подсказок для пользователя (например, "[Press space to continue, 'q' to quit.]").
more -d filename.txt - Опция
-c:- Полностью очищает экран перед показом новой страницы, предотвращая прокрутку.
more -c filename.txt - Опция
-s:- Сокращает последовательные пустые строки до одной, что помогает упростить чтение файлов с множеством пустых строк.
more -s filename.txt - Опция
+n:- Начинает просмотр с определенной строки
n.
more +20 filename.txt - Начинает просмотр с определенной строки
Примеры использования
- Просмотр файла с подсказками:
В этом случаеmore -d filename.txtmoreбудет показывать подсказки, что полезно для новых пользователей. - Просмотр длинного вывода команды:
Эта команда покажет длинный список файлов в директорииls -l /var/log | more/var/logпостранично. - Просмотр файла, начиная с определенной строки:
Этот пример откроет файлmore +50 filename.txtfilename.txt, начиная с 50-й строки.
Ограничения more
- Не поддерживает обратную прокрутку: В отличие от
less, командаmoreне позволяет прокручивать текст назад, что может быть неудобно при просмотре больших файлов. - Ограниченные возможности поиска:
moreподдерживает простой поиск, но без продвинутых опций, доступных вless.
head
Команда используется для вывода первых строк из файла или из потока данных. Это очень полезный инструмент, когда нужно быстро взглянуть на начало файла, чтобы получить общее представление о его содержимом.
Основные команды и навигация
- Вывод первых 10 строк:
- По умолчанию,
headвыводит первые 10 строк файла. - Пример:
- По умолчанию,
head filename.txt
- Эта команда выведет первые 10 строк файла
filename.txt.
- Вывод определенного количества строк:
- Можно указать, сколько строк нужно вывести, с помощью опции
-n. - Пример: чтобы вывести первые 20 строк файла:
- Можно указать, сколько строк нужно вывести, с помощью опции
head -n 20 filename.txt
- Вывод первых N байтов файла:
- Вместо строк можно вывести первые N байтов файла, используя опцию
-c. - Пример: чтобы вывести первые 50 байтов файла:
- Вместо строк можно вывести первые N байтов файла, используя опцию
head -c 50 filename.txt
- Вывод из нескольких файлов:
headможет работать с несколькими файлами одновременно, выводя указанное количество строк для каждого файла.- Пример:
head -n 5 file1.txt file2.txt
- В этом случае
headвыведет по 5 строк из каждого файла, причем перед выводом каждой группы строк будет указано имя файла.
Полезные опции
- Опция
-q(quiet, silent):- Эта опция подавляет вывод имен файлов, когда вы используете
headдля нескольких файлов. - Пример:
- Эта опция подавляет вывод имен файлов, когда вы используете
head -q -n 5 file1.txt file2.txt
- В этом случае
headвыведет по 5 строк из каждого файла, но не будет отображать имена файлов.
- Опция
-v(verbose):- Напротив, эта опция заставляет
headвсегда выводить имена файлов, даже если обрабатывается только один файл. - Пример:
- Напротив, эта опция заставляет
head -v -n 5 filename.txt
- Это может быть полезно при использовании
headв скриптах для явного указания, откуда взяты данные.
- Комбинация с другими командами:
headможно использовать в комбинации с другими командами через пайпы.- Пример: просмотр первых 10 процессов, отсортированных по использованию памяти:
ps aux --sort=-%mem | head
- Использование с отрицательными значениями:
- Вы можете использовать отрицательные значения с опцией
-n, чтобы исключить последние строки из вывода. - Пример: исключение последних 5 строк, вывод всех остальных:
- Вы можете использовать отрицательные значения с опцией
head -n -5 filename.txt
Примеры использования
- Вывод первых 3 строк файла:
Выводит только первые 3 строки файла.head -n 3 filename.txt - Вывод первых 100 байтов файла:
Выводит первые 100 байтов из файлаhead -c 100 filename.txtfilename.txt. - Просмотр первых строк нескольких файлов:
Выводит по 5 строк из файловhead -n 5 file1.txt file2.txtfile1.txtиfile2.txt, включая имена файлов в выводе. - Первые 10 строк процесса вывода команды
ls:
Выводит первые 10 строк, полученные от командыls -l | headls -l.
tail
tail очень похожа на head с той лишь разницей, что она работает с конца файла.
Команда tail в Linux используется для вывода последних строк из файла или потока данных. Она особенно полезна при просмотре логов, где важны последние записи, или при мониторинге файлов в реальном времени. Ниже приведены основные возможности, примеры использования и полезные опции команды tail.
Основные возможности
- Вывод последних 10 строк:
- По умолчанию,
tailвыводит последние 10 строк файла. - Пример:
- По умолчанию,
tail filename.txt
- Эта команда выведет последние 10 строк файла
filename.txt.
- Вывод определенного количества строк:
- Можно указать, сколько строк нужно вывести, используя опцию
-n. - Пример: чтобы вывести последние 20 строк файла:
tail -n 20 filename.txt - Можно указать, сколько строк нужно вывести, используя опцию
- Вывод последних N байтов файла:
- Вместо строк можно вывести последние N байтов файла с помощью опции
-c. - Пример: чтобы вывести последние 50 байтов файла:
- Вместо строк можно вывести последние N байтов файла с помощью опции
tail -c 50 filename.txt
- Вывод из нескольких файлов:
tailможет работать с несколькими файлами одновременно, выводя последние строки для каждого файла.- Пример:
tail -n 5 file1.txt file2.txt- В этом случае
tailвыведет по 5 последних строк из каждого файла.
Полезные опции
- Опция
-f(follow):- Эта опция позволяет
tailоставаться активным и постоянно обновлять вывод, отображая новые строки по мере их добавления в файл. - Пример: мониторинг лога в реальном времени:
- Эта опция позволяет
tail -f /var/log/syslog
tail -fполезен для мониторинга файлов журналов, так как он позволяет наблюдать за новыми записями в реальном времени.
- Опция
--retry:- В сочетании с
-f, эта опция позволяетtailпродолжать попытки открыть файл, если он временно недоступен (например, если файл создается или монтируется позже). - Пример:
- В сочетании с
tail -f --retry filename.txt
- Опция
-s(sleep interval):- Можно задать интервал обновления (в секундах) для режима
-f. По умолчаниюtailпроверяет файл каждые 1 секунду, но с этой опцией можно изменить этот интервал. - Пример:
tail -f -s 5 /var/log/syslog- В этом примере
tailобновляет вывод каждые 5 секунд.
- Можно задать интервал обновления (в секундах) для режима
- Опция
-q(quiet, silent):- Отключает вывод имени файла при выводе нескольких файлов.
- Пример:
tail -q -n 5 file1.txt file2.txt
- В этом случае
tailвыведет последние 5 строк из каждого файла, но не будет отображать имена файлов.
- Опция
-v(verbose):- Принудительный вывод имени файла перед его содержимым, даже если обрабатывается только один файл.
- Пример:
tail -v -n 5 filename.txt
Расширенные возможности
- Комбинация с другими командами:
tailможно использовать в пайпах для работы с выводом других команд.- Пример: вывод последних 10 процессов, отсортированных по времени:
ps -eo pid,etime,cmd --sort=-etime | tail
- Отрицательные значения с опцией
-n:- Вы можете использовать отрицательные значения с опцией
-n, чтобы исключить последние строки из вывода. - Пример: исключение последних 5 строк, вывод всех остальных:
- Вы можете использовать отрицательные значения с опцией
tail -n +5 filename.txt
- Команда
tailс-F:- Это расширение опции
-f, которая автоматически перемонтирует файл, если он переименован или заменен (часто используется с логами). - Пример:
- Это расширение опции
tail -F /var/log/syslog
Примеры использования
- Мониторинг системного журнала в реальном времени:
Эта команда непрерывно обновляет вывод последними строками журнала, что полезно для отслеживания событий на сервере в реальном времени.tail -f /var/log/syslog - Просмотр последних 50 байтов файла:
Выводит последние 50 байтов файлаtail -c 50 filename.txtfilename.txt. - Вывод последних строк нескольких файлов:
Выводит по 5 последних строк из файловtail -n 5 file1.txt file2.txtfile1.txtиfile2.txt. - Мониторинг файла с пользовательским интервалом обновления:
Эта команда обновляет вывод каждые 2 секунды.tail -f -s 2 filename.txt
Парсинг и обработка данных
grep
Утилита командной строки в Unix-подобных операционных системах, используемая для поиска строк, содержащих заданный шаблон, в текстовых файлах или в стандартном вводе. Название grep происходит от "global regular expression print", что отражает её основное предназначение.
Основные возможности
- Поиск строк по шаблону:
grepищет строки, соответствующие регулярному выражению, и выводит их. - Регулярные выражения:
grepподдерживает регулярные выражения, что позволяет делать более сложные запросы. Есть три режима регулярных выражений:- Обычные выражения (Basic Regular Expressions, BRE) — используется по умолчанию.
- Расширенные выражения (Extended Regular Expressions, ERE) — для использования расширенных регулярных выражений, можно использовать флаг
-E. - Perl-совместимые регулярные выражения (Perl Compatible Regular Expressions, PCRE) — с использованием флага
-P.
- Рекурсивный поиск: Можно искать в директориях, включая поддиректории, используя флаг
-rили-R. - Игнорирование регистра: С помощью флага
-iможно игнорировать регистр при поиске. - Вывод номера строки: С помощью флага
-nможно вывести номера строк вместе с совпадениями. - Подсчет совпадений: С помощью флага
-cможно подсчитать количество строк, которые соответствуют шаблону. - Вывод только совпадимого текста: С помощью флага
-oможно выводить только совпадающую часть текста, а не всю строку.
Примеры использования
- Поиск строки в файле:
Найдет все строки в файлеgrep "pattern" filenamefilename, содержащиеpattern. - Поиск без учета регистра:
Найдет все строки в файлеgrep -i "pattern" filenamefilename, содержащиеpattern, игнорируя регистр. - Поиск с выводом номера строки:
Выведет номера строк вместе с совпадениями.grep -n "pattern" filename - Поиск в нескольких файлах:
Найдет строки, содержащиеgrep "pattern" file1 file2 file3pattern, в файлахfile1,file2,file3. - Поиск в поддиректориях:
Выполнит рекурсивный поиск по всем файлам в директорииgrep -r "pattern" directory/directoryи её поддиректориях. - Поиск и подсчет совпадений:
Выведет количество строк, содержащихgrep -c "pattern" filenamepattern. - Поиск с использованием регулярных выражений:
Найдет строки вgrep -E "pattern[0-9]+" filenamefilename, содержащиеpattern, за которым следует одно или более цифр. - Поиск только совпадающей части текста:
Выведет только совпадающие фрагментыgrep -o "pattern" filenamepattern, а не всю строку. - Поиск строк, не содержащих определённое слово:
grep -v "error" example.txt
Полезные флаги и опции
-l— вывести только имена файлов, содержащих совпадения.-L— вывести только имена файлов, не содержащих совпадения.
awk
Мощный инструмент для обработки текстовых данных в Unix-подобных системах, который часто используется для анализа и манипуляции текстовыми файлами и потоками данных. Он берет свое название от первых букв фамилий его разработчиков — Alfred Aho, Peter Weinberger и Brian Kernighan.
Основные возможности
- Обработка и анализ текстов:
awkпредназначен для обработки и анализа текстовых файлов и потоков данных. Он может выполнять операции над текстом, такие как фильтрация, преобразование и форматирование данных. - Работа с полями и строками:
awkработает с текстовыми строками, разбивая их на поля и строки. По умолчанию поля разделяются пробелами или табуляциями, но это можно изменить. - Поддержка регулярных выражений:
awkподдерживает регулярные выражения для поиска и манипуляции текстом. - Встроенные функции и переменные:
awkпредоставляет множество встроенных функций и переменных для работы с текстом, числами и форматированием.
Основной синтаксис
Основной синтаксис awk выглядит следующим образом:
awk 'pattern { action }' filename
Здесь pattern — это шаблон или условие, а action — это действие, которое выполняется, если строка соответствует шаблону. Действие может быть любым набором команд awk.
Примеры использования
- Вывод всех строк файла:
Если вы хотите просто вывести все строки файла, можно использовать
awkбез шаблона:awk '{ print }' filename - Вывод определенного поля:
Например, чтобы вывести только первое поле (по умолчанию поля разделяются пробелами или табуляцией):
Здесьawk '{ print $1 }' filename$1обозначает первое поле.$2— второе поле и так далее. - Вывод строк, содержащих определенное слово:
Например, чтобы вывести все строки, содержащие слово "pattern":
awk '/pattern/ { print }' filename - Вывод строк с определенным числом полей:
Чтобы вывести строки, где количество полей больше 3:
Здесьawk 'NF > 3 { print }' filenameNF— это встроенная переменнаяawk, которая содержит количество полей в текущей строке. - Форматирование вывода:
Например, чтобы вывести только первое и третье поле, разделенные запятой:
awk '{ print $1 "," $3 }' filename - Суммирование значений в поле:
Чтобы суммировать значения во втором поле и вывести результат:
Здесьawk '{ sum += $2 } END { print sum }' filenamesum += $2накапливает сумму второго поля, а блокENDвыполняется после обработки всех строк и выводит итоговую сумму. - Изменение разделителя полей:
Если поля разделены не пробелами, а, например, запятыми, можно установить разделитель с помощью
-F:
Здесьawk -F, '{ print $1, $2 }' filename-F,устанавливает запятую как разделитель полей. - Работа с числовыми данными и форматирование вывода:
Чтобы вывести данные в формате с двумя десятичными знаками:
Здесьawk '{ printf "%.2f\n", $2 }' filenameprintfиспользуется для форматирования числовых данных.
Примеры использования в сценариях
- Обработка логов:
Если у вас есть лог-файл, и вы хотите подсчитать количество строк для каждого уникального IP-адреса:
awk '{ count[$1]++ } END { for (ip in count) print ip, count[ip] }' logfile - Выборка и сортировка данных:
Например, выбрать и отсортировать данные по значению во втором поле:
awk '{ print $2, $1 }' filename | sort -n
sed
Утилита командной строки для обработки и трансформации текстовых данных в Unix-подобных системах. Основное предназначение sed — это редактирование текстовых потоков, таких как вывод команд или содержимое файлов, без необходимости вручную открывать и изменять их в текстовом редакторе.
Основные возможности
- Поиск и замена текста:
sedпозволяет искать и заменять текстовые строки по заданному шаблону. - Удаление строк: Можно удалять строки, соответствующие определенному шаблону.
- Добавление и вставка текста:
sedможет добавлять или вставлять текст перед или после определенных строк. - Трансформация текста:
sedпозволяет изменять текст, используя регулярные выражения. - Обработка текста в потоковом режиме:
sedобрабатывает текстовые данные на лету, что позволяет использовать его в конвейерах команд.
Основной синтаксис
Основной синтаксис sed выглядит следующим образом:
sed 'command' filename
Здесь command — это команда sed, которая будет выполнена над текстом в filename.
Примеры использования
- Поиск и замена текста:
Чтобы заменить все вхождения "old" на "new" в файле:
Здесьsed 's/old/new/g' filenames/old/new/g— это команда замены:s— команда замены (substitute).old— текст для замены.new— новый текст.g— глобальная замена (все вхождения в строке).
- Поиск и замена текста с использованием регулярных выражений:
Заменить все вхождения, начинающиеся с "foo" и заканчивающиеся на "bar", на "baz":
sed 's/foo.*bar/baz/' filename - Удаление строк:
Удалить строки, содержащие слово "delete":
Здесьsed '/delete/d' filename/delete/— шаблон для поиска строк, содержащих слово "delete", аd— команда для удаления строк. - Добавление текста:
Добавить строку "New line" после строки, содержащей "pattern":
Здесьsed '/pattern/a New line' filenamea— команда добавления строки. - Вставка текста:
Вставить строку "Inserted line" перед строкой, содержащей "pattern":
Здесьsed '/pattern/i Inserted line' filenamei— команда вставки строки. - Изменение текста в строке:
Заменить текст в строке, если она содержит "pattern":
Здесьsed '/pattern/c New text' filenamec— команда замены всей строки на "New text". - Работа с диапазоном строк:
Изменить текст в строках с 2-й по 4-ю:
Здесьsed '2,4s/old/new/g' filename2,4s/old/new/gприменяет замену только в строках с 2 по 4. - Использование нескольких команд:
Выполнить несколько команд
sedпоследовательно:
Здесьsed -e 's/old/new/g' -e '/pattern/d' filename-eиспользуется для указания нескольких команд. - Замена в файле на месте:
Заменить текст непосредственно в файле (без вывода на экран):
Здесьsed -i 's/old/new/g' filename-iуказываетsedизменять файл на месте. Можно также использовать-i.bak, чтобы создать резервную копию файла перед изменением.
Полезные флаги и опции
-n— подавление вывода всех строк по умолчанию. Полезен для работы с командамиp(печать) и другими, чтобы выводить только нужные строки.-e— позволяет использовать несколько команд в одной строке.-f— позволяет читать командыsedиз файла.
Примеры использования в конвейерах команд
- Удаление всех пустых строк из вывода другой команды:
Здесьsome_command | sed '/^$/d'sedудаляет все пустые строки из выводаsome_command. - Подсчет количества строк в выводе другой команды:
Здесьsome_command | sed -n '$='sed -n '$='выводит номер последней строки, что равносильно количеству строк в выводеsome_command.
cut
Утилита командной строки в Unix-подобных системах, используемая для извлечения определённых частей строк из текстовых файлов или потоков данных. Она особенно полезна для работы с текстовыми данными, где данные организованы в виде строк с фиксированными или разделёнными символами полями.
Основные возможности
- Извлечение полей:
cutможет извлекать определённые поля из строк, разделённых фиксированным разделителем (например, пробелами или запятыми). - Извлечение символов: Можно извлекать определённые диапазоны символов из каждой строки.
- Поддержка различных разделителей:
cutподдерживает различные символы-разделители для полей, такие как табуляция, запятые, пробелы и другие.
Основной синтаксис
Основной синтаксис cut выглядит следующим образом:
cut [options] filename
Опции и флаги
-f— указывает номера полей для извлечения. Поля разделяются символом, заданным с помощью опции-d.-d— указывает символ-разделитель полей. По умолчанию используется табуляция.-c— указывает диапазоны символов для извлечения.-b— указывает диапазоны байтов для извлечения (реже используется).
Примеры использования
- Извлечение полей по разделителю:
Чтобы извлечь первый и третий поля из файла
data.txt, где поля разделены запятыми:
Здесь:cut -d',' -f1,3 data.txt-d','указывает, что разделителем полей является запятая.-f1,3указывает, что нужно извлечь первое и третье поля.
- Извлечение одного поля:
Чтобы извлечь только второй столбец из файла
data.txt, где разделителем является табуляция (по умолчанию):
Если разделитель другой, можно указать его с помощьюcut -f2 data.txt-d. - Извлечение диапазона полей:
Чтобы извлечь поля со второго по четвёртое:
Здесьcut -d',' -f2-4 data.txt2-4указывает диапазон полей от второго до четвёртого включительно. - Извлечение символов по диапазону:
Чтобы извлечь символы с 5 по 10 из каждой строки:
Здесьcut -c5-10 data.txt-c5-10указывает диапазон символов от 5 до 10. - Извлечение отдельных символов:
Чтобы извлечь 1-й, 4-й и 7-й символы из каждой строки:
Здесьcut -c1,4,7 data.txt-c1,4,7указывает извлечение символов на позициях 1, 4 и 7. - Работа с байтами:
Чтобы извлечь первые 10 байтов из каждой строки:
Здесьcut -b1-10 data.txt-b1-10указывает диапазон байтов.
Примеры использования в конвейерах команд
- Извлечение столбцов из вывода другой команды:
Например, чтобы получить список процессов и извлечь только их идентификаторы (PID) и команду:
Однако, более эффективным подходом для таких задач может быть использованиеps aux | cut -d' ' -f1,11awkилиpsс опциями. - Фильтрация файлов CSV:
Если файл
data.csvсодержит данные, разделённые запятыми, и вы хотите извлечь только второй и четвёртый столбцы:cut -d',' -f2,4 data.csv
Ограничения и примечания
cutне поддерживает сложные регулярные выражения и не может обрабатывать данные, где поля могут содержать разделители. Для таких случаев лучше использоватьawkилиsed.cutработает с текстовыми данными и может не учитывать различные кодировки, если они включают сложные символы.
uniq
Утилита командной строки в Unix-подобных системах, предназначенная для удаления дубликатов строк из текстовых данных. Она обычно используется в связке с sort, поскольку uniq работает эффективно только на отсортированных данных.
Основные возможности
- Удаление дубликатов строк:
uniqудаляет повторяющиеся строки, оставляя только уникальные. - Подсчёт повторений:
uniqможет подсчитывать количество повторений каждой строки. - Вывод только уникальных или только дублированных строк:
uniqможет выводить только уникальные строки или только дубликаты.
Основной синтаксис
Основной синтаксис команды uniq выглядит следующим образом:
uniq [options] [input_file] [output_file]
Опции и флаги
-c— подсчёт количества повторений строк. Выводит количество повторений перед строкой.-d— вывод только дублированных строк (строки, которые встречаются более одного раза).-u— вывод только уникальных строк (строки, которые встречаются ровно один раз).-i— игнорирование регистра при сравнении строк (сравнение строк без учёта регистра).-w N— игнорирование первых N символов строки при поиске дубликатов. Полезно, если строки имеют префиксы, которые нужно игнорировать.
Примеры использования
- Удаление дубликатов строк:
Чтобы удалить дубли из файла
data.txt, вы можете использовать:
Это удаляет последовательные повторения строк, оставляя только уникальные строки.uniq data.txt - Подсчёт количества повторений строк:
Чтобы вывести количество повторений каждой строки в файле
data.txt, используйте:
Здесь перед каждой строкой будет показано количество её повторений.uniq -c data.txt - Вывод только уникальных строк:
Чтобы вывести только строки, которые встречаются ровно один раз:
uniq -u data.txt - Вывод только дублированных строк:
Чтобы вывести только строки, которые повторяются:
uniq -d data.txt - Игнорирование регистра:
Если строки могут различаться только регистром, и вы хотите игнорировать это различие:
uniq -i data.txt - Игнорирование первых N символов:
Если строки имеют общий префикс, который нужно игнорировать при сравнении, например, игнорировать первые 5 символов:
Здесьuniq -w 5 data.txt-w 5указывает игнорировать первые 5 символов строки при сравнении. - Обработка отсортированных данных:
Обычно
uniqиспользуется в связке сsortдля удаления всех дубликатов в неотсортированном файле:
Сначалаsort data.txt | uniqsortупорядочивает строки, а затемuniqудаляет дубликаты.
Примеры использования в конвейерах команд
- Подсчёт уникальных значений:
Чтобы подсчитать количество уникальных значений в выводе другой команды:
Это сначала сортирует список файлов и затем подсчитывает количество повторений каждого имени файла (хотя в этом случае все имена файлов уникальны, это просто демонстрация использования).ls | sort | uniq -c - Фильтрация и анализ данных:
Если у вас есть данные о запросах в лог-файле и вы хотите найти количество уникальных IP-адресов:
Здесьawk '{print $1}' access.log | sort | uniq -cawkизвлекает IP-адреса,sortупорядочивает их, аuniq -cподсчитывает количество запросов от каждого IP-адреса.
sort
Утилита командной строки в Unix-подобных операционных системах, предназначенная для сортировки строк в текстовых файлах или потоках данных. Она может сортировать строки по алфавиту, числовым значениям, по дате и времени, а также выполнять множество других видов сортировок с использованием различных опций.
Основные возможности
- Сортировка строк по алфавиту: Сортировка строк в текстовом файле по их содержимому в алфавитном порядке.
- Сортировка чисел: Сортировка строк, содержащих числовые значения.
- Сортировка по нескольким критериям: Сортировка строк по нескольким полям или столбцам.
- Сортировка по убыванию: Сортировка строк в обратном порядке.
- Уникальность: Удаление дубликатов при сортировке.
- Обработка больших объемов данных: Эффективная работа с большими файлами и потоками данных.
Основной синтаксис
Основной синтаксис sort выглядит следующим образом:
sort [options] filename
Где filename — это имя файла, который вы хотите отсортировать. Если filename не указан, sort будет читать из стандартного ввода.
Опции и флаги
-n— сортировка чисел. Сортирует строки как числа, а не как строки.-r— сортировка в обратном порядке (по убыванию).-k— сортировка по конкретному полю. Позволяет указать, по какому полю строки должны быть отсортированы.-t— указывает символ-разделитель полей. По умолчанию используется пробел или табуляция.-u— удаление дубликатов строк (выводит только уникальные строки).-f— игнорировать регистр при сортировке (сортировка без учета регистра).-M— сортировка по месяцу (для строк, содержащих название месяца).-b— игнорировать начальные пробелы при сортировке.
Примеры использования
- Сортировка строк по алфавиту:
Чтобы отсортировать строки в файле
data.txtв алфавитном порядке:sort data.txt - Сортировка чисел:
Если в файле
numbers.txtнаходятся числовые значения, и вы хотите отсортировать их по возрастанию:sort -n numbers.txt - Сортировка в обратном порядке:
Чтобы отсортировать строки в файле
data.txtв обратном порядке:sort -r data.txt - Сортировка по конкретному полю:
Если в файле
data.txtданные разделены пробелами и вы хотите отсортировать строки по третьему полю:
Для сортировки по конкретному полю с указанием разделителя:sort -k3 data.txt
Здесьsort -t',' -k2 data.csv-t','указывает запятую как разделитель полей, а-k2— сортировать по второму полю. - Удаление дубликатов строк:
Чтобы вывести только уникальные строки в файле
data.txt:sort -u data.txt - Игнорирование регистра:
Чтобы отсортировать строки в файле
data.txt, игнорируя регистр букв:sort -f data.txt - Сортировка по дате:
Если строки содержат даты в формате
Месяц Дата Год, можно использовать-Mдля сортировки по месяцам:sort -M dates.txt - Сортировка по числовому диапазону:
Сначала нужно указать поле и затем диапазон, например, для сортировки по числовым значениям в первом поле:
Здесьsort -k1,1n data.txt-k1,1nуказывает на сортировку по первому полю числовым способом.
Обработка больших объемов данных
sort эффективно обрабатывает большие файлы, разбивая их на меньшие части и сортируя каждую часть, а затем сливая их обратно в отсортированном виде.
Примеры использования sort в конвейерах команд
- Сортировка вывода другой команды:
Например, чтобы отсортировать вывод команды
lsпо имени файла:ls | sort - Сортировка и подсчет уникальных строк:
Чтобы найти уникальные строки в файле и отсортировать их:
Здесьsort data.txt | uniquniqудаляет дубликаты из отсортированного списка.
tr
Утилита командной строки в Unix-подобных системах, используемая для трансформации или замены символов в текстовом потоке. Она предназначена для выполнения простых преобразований текста, таких как замена символов, удаление символов или преобразование регистра.
Основные возможности
- Замена символов: Заменяет одни символы на другие.
- Удаление символов: Удаляет указанные символы из текста.
- Преобразование регистра: Преобразует символы в верхний или нижний регистр.
- Удаление повторяющихся символов: Удаляет повторяющиеся символы, оставляя только уникальные.
Основной синтаксис
Основной синтаксис команды tr выглядит следующим образом:
tr [options] SET1 [SET2]
SET1— набор символов, которые будут заменены или удалены.SET2— набор символов, на которые заменяются символы изSET1. ЕслиSET2не указан, символы изSET1будут удалены.
Примеры использования
- Замена символов:
Чтобы заменить все пробелы в тексте на подчеркивания:
Здесь пробелы в строке "Hello world" заменяются на подчеркивания, и результат будет "Hello_world".echo "Hello world" | tr ' ' '_' - Преобразование регистра:
Чтобы преобразовать все буквы в верхний регистр:
Здесьecho "hello world" | tr '[:lower:]' '[:upper:]'[:lower:]представляет собой класс символов для всех строчных букв, а[:upper:]— для всех прописных букв. В результате строка станет "HELLO WORLD". Аналогично, для преобразования в нижний регистр:echo "HELLO WORLD" | tr '[:upper:]' '[:lower:]' - Удаление символов:
Чтобы удалить все цифры из текста:
Здесьecho "abc123def456" | tr -d '0-9'-dуказывает, что нужно удалить символы, соответствующие диапазону '0-9'. Результатом будет "abcdef". - Замена нескольких символов:
Чтобы заменить все буквы "a" на "1", а все буквы "b" на "2":
Здесьecho "abc abc" | tr 'ab' '12'aзаменяется на1, аbна2. Результатом будет "12c 12c". - Удаление повторяющихся символов:
Чтобы удалить повторяющиеся пробелы и оставить только один пробел между словами:
Здесьecho "hello world" | tr -s ' '-s(squeeze) используется для замены последовательных повторяющихся пробелов одним пробелом. Результатом будет "hello world". - Работа с классами символов:
Чтобы заменить все пробелы на табуляции:
Здесь пробелы заменяются на символ табуляции. Результатом будет "hello\tworld".echo "hello world" | tr ' ' '\t' - Удаление всех символов, кроме букв и цифр:
Чтобы оставить только буквы и цифры, удалив все остальные символы:
Здесьecho "abc!@#123" | tr -cd '[:alnum:]'-cинвертирует набор символов, а-dудаляет символы, не соответствующие[:alnum:](буквы и цифры). Результатом будет "abc123".
Примеры использования tr в конвейерах команд
- Приведение текста к нижнему регистру и удаление символов:
Чтобы привести текст к нижнему регистру и удалить все пробелы:
Здесь сначала преобразуется текст в нижний регистр, затем удаляются пробелы. Результатом будет "helloworld".echo "Hello World" | tr '[:upper:]' '[:lower:]' | tr -d ' ' - Преобразование текстового ввода в формат CSV:
Чтобы заменить пробелы на запятые в тексте:
Результатом будет "one,two,three".echo "one two three" | tr ' ' ','
paste
Утилита командной строки в Unix-подобных системах, предназначенная для слияния строк из нескольких файлов или потоков данных. Она объединяет строки, расположенные в нескольких входных файлах, в одну строку, разделяя их указанным символом-разделителем. Это полезно для обработки и комбинирования данных из различных источников.
Основные возможности
- Слияние строк из нескольких файлов: Объединение строк из различных файлов в одну строку.
- Выбор разделителя: Возможность указать символ, который будет использоваться в качестве разделителя между объединенными строками.
- Обработка данных в конвейере команд: Может использоваться для обработки вывода других команд и объединения данных.
Основной синтаксис
Основной синтаксис команды paste выглядит следующим образом:
paste [options] file1 file2 ...
Опции и флаги
-d— указывает символ(ы)-разделитель, который будет использоваться между объединенными строками. По умолчанию используется табуляция.-s— объединяет строки в каждом файле по одной строке, т.е. сливает строки по вертикали (по умолчанию слияние происходит по горизонтали).-— обозначает стандартный ввод. Может быть использован для обработки входных данных из конвейера.
Примеры использования
- Слияние строк из нескольких файлов:
Если у вас есть два файла
file1.txtиfile2.txt, и вы хотите объединить их строки по горизонтали:
Это объединит строки изpaste file1.txt file2.txtfile1.txtиfile2.txt, выводя их в одной строке с табуляцией между строками. - Использование другого разделителя:
Чтобы использовать запятую в качестве разделителя между строками:
Здесьpaste -d',' file1.txt file2.txt-d','указывает, что строки будут разделены запятой. - Объединение строк по вертикали:
Чтобы объединить строки из одного файла в одну строку (слить все строки в одном файле):
Это объединит все строки изpaste -s file.txtfile.txtв одну строку, разделяя их табуляцией. - Объединение строк из стандартного ввода:
Если нужно объединить строки из вывода команды:
Здесьecho -e "one\nthree" | paste -d',' - <(echo -e "two\nfour")pasteобъединяет строки из стандартного ввода с использованием запятой в качестве разделителя. - Использование нескольких разделителей:
Если вы хотите использовать несколько символов-разделителей (например, запятая и пробел), можно указать их в качестве аргумента
-d:
Это разделит строки из двух файлов сначала запятой, затем пробелом.paste -d', ' file1.txt file2.txt - Создание таблицы из нескольких файлов:
Если у вас есть несколько файлов, где каждый файл представляет собой столбец данных, можно объединить их в таблицу:
Здесь строки изpaste col1.txt col2.txt col3.txtcol1.txt,col2.txt, иcol3.txtбудут объединены в одну строку, где каждое значение будет отделено табуляцией.
Примеры использования в конвейерах команд
- Создание табличного представления данных:
Если у вас есть несколько файлов, каждый из которых содержит данные для одного столбца, вы можете объединить их в таблицу:
Здесьcat file1.txt | paste - file2.txtfile1.txtиfile2.txtбудут объединены, выводя строки изfile1.txtи соответствующие строки изfile2.txtв одной строке. - Объединение вывода команд:
Объедините вывод двух команд в одну строку:
Результатом будет "one\ttwo", если не указан другой разделитель.echo "one" | paste - <(echo "two")
Современные версии ПО
Все рассмотренные утилиты существуют уже давно и не только в GNU/Linux, но и в других Unix подобных дистрибутивах, но то что они есть давно и везде совсем не значит, что они являются лучшими в своём роде. Множество из этих программ имеют современные аналоги, которые и работают быстрее, и предоставляют информацию в более удобном виде, и добавляют новые возможности. Вот несколько примеров программ и утилит, которые могут служить аналогами стандартных программ и инструментов в Linux:
- ripgrep (rg) — Аналог
grep. Это утилита для поиска текста в файлах, которая быстрее и эффективнееgrep, благодаря использованию алгоритмов поиска, оптимизированных для производительности. - fd — Аналог
find. Эта утилита предназначена для поиска файлов и директорий, но с более удобным интерфейсом и улучшенной производительностью по сравнению сfind. - bat — Аналог
cat. Это улучшенная версияcat, которая поддерживает подсветку синтаксиса для различных языков программирования и улучшенное отображение содержимого файлов. - exa — Аналог
ls. Это современная утилита для отображения списка файлов и директорий, поддерживающая цветную подсветку, улучшенные форматирования и отображение дополнительных метаданных. Если хочется попробовать данные утилиты в действии, то можно установить их или из стандартных репозиториев вашего дистрибутива, или с помощью пакетного менеджера cargo, или найти исходники в github.