<Предыдущая | Содержание: | Следующая>
кошка
The кошка В программе есть ряд интересных опций. Многие из них используются, чтобы лучше визуализировать текстовое содержимое. Одним из примеров является -A опция, которая используется для отображения непечатаемых символов в тексте. Бывают случаи, когда мы хотим знать, встроены ли управляющие символы в наш видимый в остальном текст. Наиболее распространенными из них являются символы табуляции (в отличие от пробелов) и символы возврата каретки, которые часто присутствуют как символы конца строки в текстовых файлах в стиле MS-DOS. Другой распространенной ситуацией является файл, содержащий строки текста с конечными пробелами.
Создадим тестовый файл, используя кошка как примитивный текстовый процессор. Для этого мы просто введем команду кошка (вместе с указанием файла для перенаправленного вывода) и введите наш текст, а затем Enter чтобы правильно закончить строку, затем Ctrl-d, чтобы указать кошка что мы достигли конца файла. В этом примере мы вводим начальный символ табуляции и следуем за строкой с некоторыми завершающими пробелами:
[я @ linuxbox ~] $ кошка> foo.txt
Быстрая, коричневая лиса, перепрыгнула через ленивого пса. [я @ linuxbox ~] $
[я @ linuxbox ~] $ кошка> foo.txt
Быстрая, коричневая лиса, перепрыгнула через ленивого пса. [я @ linuxbox ~] $
Далее мы будем использовать кошка с -A возможность отображения текста:
[я @ linuxbox ~] $ кошка -A foo.txt
↑ Быстрая коричневая лисица перепрыгнула через ленивого пса. $ [меня @ linuxbox ~] $
[я @ linuxbox ~] $ кошка -A foo.txt
↑ Быстрая коричневая лисица перепрыгнула через ленивого пса. $ [меня @ linuxbox ~] $
Как мы видим в результатах, символ табуляции в нашем тексте представлен как ^I. Это обычное обозначение, которое означает «Control-I», что, как оказалось, совпадает с символом табуляции. Мы также видим, что $ появляется в истинном конце строки, указывая на то, что в нашем тексте есть завершающие пробелы.
Текст MS-DOS против. Текст в Unix
Одна из причин, по которой вы можете захотеть использовать кошка искать непечатаемые символы в тексте - значит обнаруживать скрытые символы возврата каретки. Откуда берутся скрытые возвраты каретки? DOS и Windows! Unix и DOS по-разному определяют конец строки в текстовых файлах. Unix завершает строку символом перевода строки (ASCII 10), в то время как MS-DOS и его производные используют возврат каретки последовательности (ASCII 13) и перевод строки для завершения каждой строки текста.
Есть несколько способов конвертировать файлы из формата DOS в формат Unix. Во многих системах Linux есть программы, называемые dos2unix и unix2dos, который может конвертировать текстовые файлы в формат DOS и обратно. Однако, если у вас нет dos2u-nix в вашей системе, не волнуйтесь. Процесс преобразования текста из формата DOS в формат Unix очень прост; он просто включает удаление недопустимых возвратов вагона. Это легко сделать с помощью пары программ, обсуждаемых далее в этой главе.
cat также имеет параметры, которые используются для изменения текста. Двумя наиболее известными являются -n, который нумерует строки, и -s, который подавляет вывод нескольких пустых строк. Таким образом мы можем продемонстрировать:
[я @ linuxbox ~] $ кошка> foo.txt
Быстрая коричневая лиса
[я @ linuxbox ~] $ кошка> foo.txt
Быстрая коричневая лиса
перепрыгнул через ленивую собаку.
[я @ linuxbox ~] $ кошка -ns foo.txt
перепрыгнул через ленивую собаку.
[я @ linuxbox ~] $ кошка -ns foo.txt
1
2
3
1
2
3
[я @ linuxbox ~] $
[я @ linuxbox ~] $
Быстрая коричневая лиса
Быстрая коричневая лиса
перепрыгнул через ленивую собаку.
перепрыгнул через ленивую собаку.
В этом примере мы создаем новую версию нашего foo.txt тестовый файл, содержащий две строки текста, разделенные двумя пустыми строками. После обработки кошка с -нс параметры, лишняя пустая строка удаляется, а оставшиеся строки нумеруются. Хотя это небольшой процесс для текста, это процесс.