Чтение онлайн

на главную

Жанры

Командная строка Linux
Шрифт:

А вот и наши старые знакомые!

В главе 6 мы познакомились с некоторыми командами, способными принимать данные не только из аргументов командной строки, но и из стандартного ввода. В той главе мы очень коротко познакомились с ними, но сейчас пришло время более близкого знакомства — мы узнаем, как их можно использовать для обработки текста.

cat — объединение файлов и вывод их в стандартный поток вывода

Программа cat содержит множество интересных параметров. Многие

из них используются для улучшенного отображения текстового содержимого. Примером может служить параметр -A, используемый для отображения непечатаемых символов в тексте. Иногда необходимо знать, имеются ли управляющие символы в просматриваемом тексте. Наиболее распространенными из них являются символы табуляции (в противоположность пробелам) и символы возврата каретки, часто представляющие концы строк в текстовых файлах, оформленных в стиле MS-DOS. Другим распространенным вариантом является файл, содержащий строки с завершающими пробелами.

Давайте создадим файл для экспериментов, используя cat как примитивный текстовый процессор. Для этого введем команду cat (указав файл для перенаправления вывода), а следом наш текст, завершив строки нажатием клавиши ENTER и закончив все комбинацией CTRL+D — она сообщит программе cat, что достигнут конец файла. В этом примере мы ввели символ табуляции и добавили в конец строки несколько пробелов:

[me@linuxbox ~]$ cat > foo.txt

The quick brown fox jumped over the lazy dog12.

[me@linuxbox ~]$

Далее, вызовем cat с параметром -A, чтобы показать текст:

[me@linuxbox ~]$ cat -A foo.txt

^IThe quick brown fox jumped over the lazy dog. $

[me@linuxbox ~]$

Как видите, символ табуляции в тексте представлен парой символов ^I. Эта обычная форма записи означает «CTRL+I», то есть, как оказывается, — символ табуляции. Здесь также видно, что символ $ отмечает истинный конец строки, помогая увидеть дополнительные пробелы в конце строки.

текст в ms-dos и unix

Одна из причин, почему может появиться желание использовать cat для отображения непечатаемых символов в тексте, — необходимость определить присутствие символов возврата каретки. Откуда берутся скрытые возвраты каретки? Из DOS и Windows! В Unix и DOS концы строк в текстовых файлах оформляются по-разному. В Unix строки заканчиваются символом перевода строки (ASCII 10), тогда как в MS-DOS и ее наследницах для этой цели используется последовательность из возврата каретки (ASCII 13) и перевода строки.

Существует несколько способов преобразовать файлы из формата DOS в формат Unix. Во многих системах Linux имеются программы unix2dos и dos2unix для преобразования текстовых файлов в формат DOS и обратно. Однако если в вашей системе нет программы dos2unix, не волнуйтесь. Процесс преобразования текста из формата DOS в формат Unix очень прост — достаточно лишь удалить ненужные возвраты каретки. Это можно сделать с помощью пары программ, с которыми мы познакомимся ниже в этой главе.

Программа cat имеет также параметры, используемые для изменения текста. Наиболее известными являются -n, добавляющий

номера строк, и -s, подавляющий вывод множества пустых строк, идущих подряд. Давайте продемонстрируем их:

[me@linuxbox ~]$ cat > foo.txt

The quick brown fox

 

 

jumped over the lazy dog.

[me@linuxbox ~]$ cat -ns foo.txt

1 The quick brown fox

2

3 jumped over the lazy dog.

[me@linuxbox ~]$

В этом примере мы создали новую версию тестового файла foo.txt, содержащую две строки, разделенные двумя пустыми строками. После обработки текста командой cat с параметрами -ns одна пустая строка была удалена, а остальные строки пронумерованы. Хотя это не самая сложная обработка текста, все же это обработка.

sort — сортировка строк текстовых файлов

Программа sort сортирует содержимое стандартного ввода или одного или нескольких файлов, указанных в командной строке, и записывает результаты в стандартный вывод. Применив тот же прием, который мы использовали совместно с командой cat, можно продемонстрировать обработку стандартного ввода.

[me@linuxbox ~]$ sort > foo.txt

c

b

a

[me@linuxbox ~]$ cat foo.txt

a

b

c

После запуска команды мы ввели буквы c, b и a, а затем признак конца файла с помощью комбинации CTRL+D. Затем просмотрели получившийся файл и увидели, что строки в нем отсортированы.

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

sort file1.txt file2.txt file3.txt > final_sorted_list.txt

Программа sort имеет несколько интересных параметров. Их неполный список приводится в табл. 20.1.

Таблица 20.1. Часто используемые параметры команды sort

Параметр

Длинный параметр

Описание

– b

– -ignore-leading-blanks

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

– f

– -ignore-case

Выполнять сортировку без учета регистра символов

– n

– -numeric-sort

Выполнять сортировку, опираясь на числовые значения строк. Этот параметр позволяет осуществлять сортировку в соответствии с числовыми значениями, а не по алфавиту

– r

– -reverse

Сортировать в обратном порядке. Строки в результате будут следовать в порядке убывания, а не возрастания

– k

– -key=поле1[,поле2]

Сортировать по ключевым полям, начиная с поля1 и заканчивая полем2, а не по всей строке

Поделиться:
Популярные книги

Корпулентные достоинства, или Знатный переполох. Дилогия

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия

Мужчина моей судьбы

Ардова Алиса
2. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.03
рейтинг книги
Мужчина моей судьбы

Темный Кластер

Кораблев Родион
Другая сторона
Фантастика:
боевая фантастика
5.00
рейтинг книги
Темный Кластер

Барон не играет по правилам

Ренгач Евгений
1. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон не играет по правилам

Хозяйка Междуречья

Алеева Елена
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Хозяйка Междуречья

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Стрелок

Астахов Евгений Евгеньевич
5. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Стрелок

Возвращение

Жгулёв Пётр Николаевич
5. Real-Rpg
Фантастика:
боевая фантастика
рпг
альтернативная история
6.80
рейтинг книги
Возвращение

Имперец. Земли Итреи

Игнатов Михаил Павлович
11. Путь
Фантастика:
героическая фантастика
боевая фантастика
5.25
рейтинг книги
Имперец. Земли Итреи

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Кодекс Охотника. Книга XXV

Винокуров Юрий
25. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга XXV

Неверный. Свободный роман

Лакс Айрин
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Неверный. Свободный роман

Ты предал нашу семью

Рей Полина
2. Предатели
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты предал нашу семью

Шериф

Астахов Евгений Евгеньевич
2. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
6.25
рейтинг книги
Шериф