CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
28.11.2021

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Блогометки :: Приложения

less: автоматический просмотр архивов *.gz и других типов файлов

http://sovety.blogspot.com/2008/07/less-gz.html

Материал распространяется на условиях Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Популярную листалку для командной строки less легко научить просматривать не только текстовые файлы, но и многие другие. Например, ей можно смотреть сжатые файлы или файлы PDF, не задумываясь о вызове архиватора или нужного конвертера. Примерно так:

$ less /usr/share/doc/less/changelog.gz
Собственно, во многих дистрибутивах так уже настроено по умолчанию. В Debian эта возможность по умолчанию выключена. Чтобы она заработала, нужно в ~/.bashrc (если пользуетесь bash) добавить eval $(lesspipe) или eval $(lessfile). Это установит переменные окружения LESSOPEN и LESSCLOSE, говорящие less пропускать файлы через указанный фильтр. Фильтр /usr/bin/lesspipe смотрит на расширение файла и запускает нужный конвертрер, если необходимо. Разница между lesspipe и lessfile в том, что первый конвертирует файлы на лету, сразу отдавая результат в less, а lessfile вначале полностью конвертирует файл, и только потом вызывает less.

Понятно, что очень просто можно настроить пользовательские фильтры. Добавлять их нужно в пользовательский скрипт ~/.lessfilter. Например, чтобы просматривать с помощью less файлы OpenOffice, я добавляю фильтр, вызывающий antiod, а чтобы просматривать файлы MSWord — фильтр, вызывающий antiword. Файл ~/.lessfilter выглядит при этом так:

#!/bin/sh
(
case `echo "$1" | tr '[:upper:]' '[:lower:]'` in
    *.odt)
        if [ -x "`which antiodt`" ]; then antiodt "$1" ;
        else cat "$1"; fi ;; # No antiodt available
    *.doc)
        if [ -x "`which antiword`" ]; then antiword "$1" ;
        else cat "$1"; fi ;; # No antiword available
esac
) 2>/dev/null
P.S. Код раскрасил с помощью плагина toblog к vim, создающего цветной HTML согласно текущей цветовой схеме редактора.




Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds