Дистрибутивы GNU/Linux включают множество программ для обработки текста, большинство из которых предоставляются основными утилитами GNU. Требуется некоторое время для обучения, но при правильном использовании эти утилиты могут оказаться очень полезными и эффективными.
Вот тринадцать мощных инструментов для работы с текстом, которые должен знать каждый пользователь командной строки.
1. кот
Cat был разработан для объединения cat файлов, но чаще всего используется для отображения одного файла. Без каких-либо аргументов cat читает стандартный ввод до тех пор, пока не будет нажата Ctrl+ D(из терминала или из вывода другой программы, если используется
Contents
1. кот
тный ввод также можно явно указать с помощью-
.
Cat имеет ряд полезных опций, в частности:
-A
печатает «$» в конце каждой строки и отображает непечатаемые символы с использованием каретки.-n
нумерует все строки.-b
— это не пустые строки.-s
сокращает серию пустых строк до одной пустой строки.
В следующем примере мы объединяем и нумеруем содержимое файла1, стандартного ввода и файла3.
cat -n file1 - file3
2. сортировать
Как следует из названия, sort
сортирует содержимое файла в алфавитном и числовом порядке.
3. уникальный
Uniq берет отсортированный файл и удаляет повторяющиеся строки. Часто он объединяется с sort
в одной команде.
4. сообщение
Comm используется для сравнения двух отсортированных файлов построчно. Он выводит три столбца: первые два столбца содержат строки, уникальные для первого и второго файла соответственно, а третий отображает строки, найденные в обоих файлах.
5. вырезать
Cut используется для извлечения определенных разделов строк на основе символов, полей или байтов. Он может читать из файла или из стандартного ввода, если файл не указан.
Вырезка по положению символа
Опция -c
указывает одну позицию символа или один или не
3. уникальный
волов.Например:
-c 3
: третий символ.-c 3-5
: с 3-го по 5-й символ.-c -5
или-c 1-5
: с 1-го по 5-й символ.-c 5-
: от 5-го символа до конца строки.-c 3,5-7
: 3-й и с 5-го по 7-й символ.
Разрезка по полю
Поля разделяются разделителем, состоящим из одного символа, который указывается опцией -d
. Параметр -f
выбирает позицию поля или один или несколько диапазонов полей в том же формате, что и выше.
6. дос2юникс
GNU/Linux и Unix обычно завершают текстовые строки переводом строки (LF), тогда
5. вырезать
ет возврат каретки и перевод строки (CRLF). Проблемы совместимости могут возникнуть при обработке текста CRLF в Linux, и здесь на помощь приходит dos2unix. Он преобразует терминаторы CRLF в LF.В следующем примере команда file
используется для проверки формата текста до и после использования dos2unix
.
7. сложить
Чтобы длинные строки текста было легче читать и обрабатывать, вы можете использовать fold
, который переносит строки до указанной ширины.
По умолчанию сгиб строго соответствует указанной ширине, разбивая слова там, где это необходимо.
fold -w 30 longline.txt
Если разрыв слов нежелателен, вы можете использовать опцию -s
для разрыва пробелов.
fold -w 30 -s longline.txt
8. значокv
Этот инструмент преобразует текст из одной кодировки в другую, что очень полезно при работе с необычными кодировками.
iconv -f input_encoding -t output_encoding -o output_file input_file
- input_encoding — это кодировка, из которой вы конвертируете.
- «output_encoding» — это кодировка, в которую вы конвертируете.
- «output_file» — это имя файла, в котором i
6. дос2юникс
- «input_file» — это имя файла, из которого iconv будет читать.
Примечание. вы можете перечислить доступные кодировки с помощью iconv -l
9. прошло
sed — мощный и гибкий s tream ed итор, чаще всего используемый для поиска и замены строк со следующим синтаксисом.
Следующая команда прочитает из указанного файла (или стандартного ввода), заменив части текста, соответствующие шаблону регулярное выражение , строкой замены и выведет результат на терминал.
sed s/pattern/replacement/g filename
Чтобы изменить исходный файл, вы можете использовать флаг -i
.
10. туалет
Утилита wc
выводит количество байтов, символов, слов или строки в файле .
11. разделить
Вы можете использовать split
, чтобы разделить файл на более мелкие файлы по количеству строк, по размеру или на определенное количество файлов.
Разделение по количеству строк
split -l num_lines input_file output_prefix
Разделение по байтам
split -b bytes input_file output_prefix
Разделение на определенное количество файлов
split -n num_files input_file output_prefix
12. так
Tac, который представляет собой кот в обратном порядке, делает именно это: отображает файлы со строками в обратном порядке.
13. тр
Инструмент tr используется для перевода или удаления наборов символов.
Набор символов обычно представляет собой строку или диапазон символов. Например:
- А-Я: все буквы в верхне
9. прошло
li>«a-z0-9»: строчные буквы и цифры. - “\n[:punct:]”: символы новой строки и пунктуации
Подробнее см. в разделе страница руководства tr .
Чтобы преобразовать один набор в другой, используйте следующий синтаксис:
tr SET1 SET2
Например, чтобы заменить символы нижнего регистра их эквивалентами в верхнем регистре, вы можете использовать следующее:
tr "a-z" "A-Z"
Чтобы удалить набор символов, используйте флаг -d
.
tr -d SET
Чтобы удалить дополнение набора символов (т. е. все, кроме набора),
10. туалет
dc.tr -dc SET
Заключение
Что касается командной строки Linux, есть чему поучиться. Надеемся, приведенные выше команды помогут вам лучше работать с текстом в командной строке.