Лучшие команды Linux, которые помогут вам при обработке текста.

Вы когда-нибудь сталкивались с необходимостью обработки текста в журналах, чтобы найти что-то в огромном количестве журналов? Пытались ли вы искать в журналах, которые были сжаты? Пытались ли вы искать, предварительно распаковав их? Были ли в логах шаблоны, из которых нужно было извлечь текст?

В этой статье блога рассказывается о некоторых полезных командах и их использовании в Linux для обработки текста.

  • Просмотр всех текстовых файлов вместе в каталоге.

Если текстовые файлы или файлы журналов компонента программного обеспечения разделены по разным файлам, как это обычно бывает в больших системах, где журналы обновляются ежечасно/ежеминутно. При поиске журналов вы хотите просмотреть их все вместе, а затем выполнить поиск вместо того, чтобы просматривать каждый файл.


cat * | less
or 
cat logs_files* | less

Вход в полноэкранный режим Выход из полноэкранного режима

Команда cat с подстановочным шаблоном поможет в этом.

Но команда cat не будет работать, если файлы сжаты? 

  • zcat

Используйте следующую команду для просмотра текстовых файлов, сложенных вместе, и она будет работать, даже если текстовые файлы сжаты, она распакует их в памяти и покажет выходной текст.


zcat * | less
or 
to view all the log files starting with logs_pattern
zcat logs_pattern* | less

Войти в полноэкранный режим Выйти из полноэкранного режима
  • Grep 

Команда grep — одна из самых полезных команд в терминальной среде Linux. Название grep расшифровывается как «глобальная печать регулярных выражений». Это означает, что вы можете использовать grep для проверки соответствия вводимых данных заданному шаблону.
Таким образом, если вы хотите найти определенный шаблон или текст в файле, вы можете использовать grep, чтобы найти его.

grep "pattern" file
#if you want to make it search accross all files
cat * | grep "pattern" file
or 
zcat * | grep "pattern" file

Вход в полноэкранный режим Выход из полноэкранного режима

Инструмент grep используется не только для поиска шаблонов в файлах, но и для фильтрации определенных шаблонов.

 

grep -v pattern myfile
Войти в полноэкранный режим Выйти из полноэкранного режима

 указывает grep печатать только те строки, которые не соответствуют шаблону.

Теперь, когда мы нашли искомый текст в текстовых файлах или журналах, мы хотим извлечь из них какую-то информацию?

  • sed и awk

Хотя трудно охватить все различные типы использования в одной статье блога, поскольку каждая из команд потребует отдельной статьи, я все же попытаюсь дать обзор того, как эти команды могут быть полезны.

sed — это полезная функция обработки текста в GNU/Linux. Полная форма sed — Stream Editor.

Unix предоставляет sed и awk как две утилиты для обработки текста, которые работают построчно.

Программа sed (потоковый редактор) хорошо работает с символьной обработкой, а программа awk (Aho, Weinberger, Kernighan) — с обработкой разделенных полей.

awk '{print $3}' filename

Вход в полноэкранный режим Выход из полноэкранного режима

Эта команда выведет на экран только третий столбец из имени файла

sed -n '/hello/p' file1
Войти в полноэкранный режим Выйти из полноэкранного режима

Эта команда отобразит все строки, содержащие hello

sed 's/hello/HELLO/' file1
Ввести полноэкранный режим Выйти из полноэкранного режима

Эта команда заменит hello на HELLO везде в файле. ‘s’ в команде означает замену.

  • tr — перевести

эта команда используется для перевода символов в файле в некоторые другие формы, например, выдавливание повторяющихся символов и замена их на единственное вхождение этого символа или удаление символа.

tr -d ',' < file1
Вход в полноэкранный режим Выйти из полноэкранного режима

Эта команда удалит все вхождения запятой(«,») из файла file1.

tr -d "hello" < file1
Войти в полноэкранный режим Выход из полноэкранного режима

Эта команда удалит все вхождения любого из символов h или e или l или o из файла fle1.

  • jq 

Команду JQ можно использовать по-разному; ее можно применять непосредственно к файлу JSON, а также комбинировать с несколькими другими командами для интерпретации данных JSON.

Команда jq является очень мощной при работе с данными JSON, которые могут быть получены из REST API или из журналов сервера.

Допустим, пример JSON выглядит следующим образом:

{"users":{"name": "Dhiren","id": "001"}}
Войти в полноэкранный режим Выйти из полноэкранного режима

Для извлечения внутренней карты пользователей, мы бы использовали:

jq '.users' users.json
Enter fullscreen mode Выйти из полноэкранного режима

Для извлечения имени мы используем следующее :

jq '.users.name' users.json
Войти в полноэкранный режим Выйти из полноэкранного режима

Вот и все на сегодня! Я энтузиаст LINUX и хотел бы освещать больше блогов, связанных с Linux, облачными вычислениями и разработкой программного обеспечения в целом. Я ежедневно публикуюсь на своем аккаунте в Твиттере.

Давайте общаться!

✨ Twitter

✨ Github

Оцените статью
devanswers.ru
Добавить комментарий