<Попередній | зміст | Наступна>
як
Команда як Програма має ряд цікавих опцій. Багато з них використовуються для кращої візуалізації текстового вмісту. Одним із прикладів є -A параметр, який використовується для відображення недрукованих символів у тексті. Бувають випадки, коли ми хочемо знати, чи вбудовані керуючі символи в наш, інакше, видимий текст. Найпоширенішими з них є символи табуляції (на відміну від пробілів) і повернення каретки, які часто присутні як символи кінця рядка в текстових файлах у стилі MS-DOS. Іншою поширеною ситуацією є файл, що містить рядки тексту з пробілами в кінці.
Давайте створимо тестовий файл за допомогою як як примітивний текстовий процесор. Для цього ми просто введемо команду як (разом із зазначенням файлу для переспрямованого виводу) і введіть наш текст, а потім Enter щоб правильно закінчити рядок Ctrl-d, вказувати на як що ми досягли кінця файлу. У цьому прикладі ми вводимо символ табуляції та йдемо по рядку з деякими пробілами в кінці:
[me@linuxbox ~]$ cat > foo.txt
Швидкий бурий лис перестрибнув через ледачого пса. [me@linuxbox ~]$
[me@linuxbox ~]$ cat > foo.txt
Швидкий бурий лис перестрибнув через ледачого пса. [me@linuxbox ~]$
Далі ми скористаємося як з -A можливість відображення тексту:
[me@linuxbox ~]$ cat -A foo.txt
^ІШвидка бура лисиця перескочила через ледачого пса. $ [me@linuxbox ~]$
[me@linuxbox ~]$ cat -A foo.txt
^ІШвидка бура лисиця перескочила через ледачого пса. $ [me@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, який пригнічує вихід кількох порожніх рядків. Таким чином ми можемо продемонструвати:
[me@linuxbox ~]$ cat > foo.txt
Швидка бура лисиця
[me@linuxbox ~]$ cat > foo.txt
Швидка бура лисиця
перескочив через ледачого собаку.
[me@linuxbox ~]$ cat -ns foo.txt
перескочив через ледачого собаку.
[me@linuxbox ~]$ cat -ns foo.txt
1
2
3
1
2
3
[me@linuxbox ~]$
[me@linuxbox ~]$
Швидка бура лисиця
Швидка бура лисиця
перескочив через ледачого собаку.
перескочив через ледачого собаку.
У цьому прикладі ми створюємо нову версію нашого foo.txt тестовий файл, який містить два рядки тексту, розділені двома пустими рядками. Після обробки за як з -нс параметри, зайвий порожній рядок видаляється, а решта рядків нумеруються. Хоча це не дуже складний процес для тексту, це процес.